【发布时间】:2020-09-29 14:54:47
【问题描述】:
考虑以下控制器:
namespace Web.Controllers
{
[ApiVersioning("1.0")
[Route("api/v{version:apiVersion}/[controller]")]
public class Product : ApiController
{
[HttpGet("id")]
public IHttpActionResult<bool> GetProduct(Guid id)
{ /* rest of the code */ }
}
}
namespace Web.Controllers
{
[ApiVersioning("2.0")
[Route("api/v{version:apiVersion}/[controller]")]
public class Product2 : ApiController
{
[HttpGet("id")]
public IHttpActionResult<bool> GetProduct(Guid id)
{ /* rest of the code */ }
}
}
Startup 类中的 Swagger 文档:
services.AddSwaggerDocument(config =>
{
config.DocumentName = "v1.0";
config.PostProcess = document =>
{
document.Info.Version = "v1.0";
};
});
services.AddSwaggerDocument(config =>
{
config.DocumentName = "v2.0";
config.PostProcess = document =>
{
document.Info.Version = "v2.0";
};
});
现在使用 NSwag 测试 API 浏览器后,它会忽略版本并显示 v1 和 v2 文档中的所有 API。
如何告诉 NSwag 将它们分开?
【问题讨论】:
标签: asp.net-core swagger nswag nswagstudio aspnet-api-versioning