我正在尝试将 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 中输入版本号?