【发布时间】:2020-07-11 22:55:12
【问题描述】:
我按照指令 REST API versioning with ASP.NET Core 在响应标头中显示我的 API 版本。
这是我的配置代码:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddMvc().AddNewtonsoftJson();
services.AddMvc(opt =>
{
services.AddRouting(env => env.LowercaseUrls = true);
services.AddApiVersioning(opt => {
opt.ApiVersionReader = new MediaTypeApiVersionReader();
opt.AssumeDefaultVersionWhenUnspecified = true;
opt.ReportApiVersions = true;
opt.DefaultApiVersion = new ApiVersion(1, 0);
opt.ApiVersionSelector = new CurrentImplementationApiVersionSelector(opt);
});
}
这是我的控制器:
[Route("/")]
[ApiVersion("1.0")]
public class RootController:Controller
{
[HttpGet(Name =nameof(GetRoot))]
public IActionResult GetRoot()
{
var response = new { href = Url.Link(nameof(GetRoot),null) };
return Ok(response);
}
}
当我用邮递员测试我的 API 时,我得到了这个结果:
我不知道为什么opt.ReportApiVersions = true; 不起作用。
【问题讨论】:
标签: api asp.net-core api-versioning aspnet-api-versioning