【发布时间】:2021-03-14 20:26:28
【问题描述】:
我正在尝试使用 ASP.NET Core 及其版本创建 API。我安装了Microsoft.AspNetCore.Mvc.Versioning。我喜欢的是所有在 URL 中带有版本的 API,所以很容易理解我使用的是什么版本的 API。例如/api/v1/TableAzureCategory。
为此,我在Startup.cs 中添加了以下代码行:
services.AddApiVersioning(config =>
{
config.DefaultApiVersion = new ApiVersion(1, 0);
config.AssumeDefaultVersionWhenUnspecified = true;
config.ReportApiVersions = true;
config.ApiVersionReader = new UrlSegmentApiVersionReader();
});
然后,我在我的 API 控制器中添加了一些装饰
[ApiController]
[ApiVersion("1.0")]
[Route("api/v{version:apiVersion}/[controller]")]
public class TableAzureCategoryController : ControllerBase
{
}
我运行应用程序,打开 Swagger,这就是我所看到的(基本上 {version:apiVersion} 不会被 API 版本替换)
我环顾四周,但我发现只有我上面的实现。有什么想法吗?
【问题讨论】:
-
你必须大摇大摆地告诉它。我忘记了它叫什么,“分组”的东西。但是有两个选项来设置,然后基本上是一个 foreach 循环来调用 API 版本描述符(或类似的东西)。不记得我脑海中的细节,但希望这能帮助你找到一些谷歌搜索
标签: c# asp.net-core asp.net-core-webapi asp.net-routing