【发布时间】:2019-03-21 08:25:31
【问题描述】:
我正在尝试将 URL 版本控制引入我的 .Net Core WebAPI 应用程序。我还在使用 Swagger 网络工具以方便用户使用。
现在,在尝试将版本控制引入我的应用程序时,我在此处引用了文档:https://github.com/Microsoft/aspnet-api-versioning/wiki/New-Services-Quick-Start#aspnet-core
现在,我对我的代码进行了以下代码更改:
Startup.cs/ConfigureServices 我在下面添加了代码:
services.AddApiVersioning(options => {
options.AssumeDefaultVersionWhenUnspecified = true;
});
现在,在添加任何类型的版本控制之前,我的控制器注释如下所示:
[Produces("application/json")]
[Route("api/controllerName")]
并生成如下所示的 URL:
http://localhost:12003/swagger/#!/Workspace/GetAll
现在,我在下面添加了注释以启用 api 版本控制:
. [ApiVersion("1.0")]
[Produces("application/json")]
[Route("api/v{version:apiVersion}/workspace")]
现在当我点击我的招摇用户界面中列出的相同方法时
网址如下所示:
http://localhost:12003/swagger/#!/controllername/ApiV_versionGetAll
虽然我期待的是这样的:
http://localhost:12003/swagger/#!/controllername/V1.0/GetAll
同样在我大摇大摆的情况下,它现在明确要求我输入版本号。所以我认为我的问题归结为两点:
- 如何修复我的 URL?我做错了什么?
- 当我在控制器的注释中明确声明版本将是 1.0 时,为什么 swagger 现在要求我在 API UI 中输入版本号?
【问题讨论】:
-
这是一个很棒的包,它以一种很棒的方式将版本控制添加到 swagger github.com/rh072005/SwashbuckleAspNetVersioningShim
-
您的回答确实解决了我的问题。这是值得回答的。您介意将其转换为答案吗?
标签: asp.net-core swagger asp.net-core-webapi restful-url api-versioning