在Web API控制器的方法上使用“ApiExplorerSettings(IgnoreApi=true)”可以在Swagger文档中隐藏不必要的API。但是,如果使用这个特性来隐藏映射路由,则不会起作用。为了解决这个问题,可以使用RoutePrefix和Route特性来限制要显示在文档中的路由。代码示例如下:
[RoutePrefix("api/values")]
public class ValuesController : ApiController
{
//GET api/values
[Route("")]
[HttpGet]
public IEnumerable Get()
{
return new string[] { "value1", "value2" };
}
//GET api/values/5
[Route("{id:int}")]
[HttpGet]
public string Get(int id)
{
return "value";
}
//POST api/values
[Route("")]
[HttpPost]
public void Post([FromBody]string value)
{
}
}
上面的控制器使用RoutePrefix和Route特性来指定路由,这样Swagger文档中只会显示这些路由,而不是所有的API。
上一篇:APIExplorer:IncludingEnvelopeCustomFields
下一篇:ApiExplorerSettings(IgnoreApi=true)doesn'thidemappingroutesfromdocument