我在我的 WebAPI 项目上设置了 Swagger/Swashbuckle。我遵循了Microsoft 的指南,其中介绍了如何使用 Swagger 设置 Aspnet.WebApi.Versioning。我的 API 有多个版本,所以{version}
在路由属性中有一个参数集,像这样:
[ApiVersion("2")]
[RoutePrefix("api/{version:apiVersion}/values")]
public class AccountController : ApiController
{
[Route("UserInfo")]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
}
我的问题是,这{version}
在文档中显示的路径中显示了一个属性,如下所示:
相反,我希望这个路径属性实际上具有属性中的值ApiVersion
,这样阅读文档的客户就不会感到困惑。理想情况下,假设 UrlDiscoverySelector 设置为v2
上述路径应该是:
/api/2/account/userinfo
/api/2/account/externallogin
/api/2/account/manageinfo
我尝试简单地替换UI{version}
中工作RelativePath
的ApiExplorer
,但破坏了测试功能,因为它{version}
被更改为query
参数而不是path
,这不是我的 API 的配置方式。
我是否可以ApiExplorer
在 swagger 构建文档之前修改值,同时仍保留测试功能?