Dotnet Core Web API 版本控制
Dotnet Core Web API Versioning
我今天构建了我的第一个 dotnet 核心网络 api,发现了一些我无法解决的问题。我希望有人能看到我做错了什么。
这是按预期工作的代码。
[Route("api/[controller]")]
public class HelpController : Controller
{
[HttpGet]
public string Get()
{
return "hello world";
}
}
但是,当我尝试应用版本控制时,我什么也没得到。
[ApiVersion("1.0")]
[Route("api/{version:apiVersion}/[controller]")]
public class HelpController : Controller
{
[HttpGet]
public string Get()
{
return "hello world";
}
}
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddApiVersioning(option =>
{
option.ReportApiVersions = true;
option.DefaultApiVersion = new ApiVersion(1, 0);
option.AssumeDefaultVersionWhenUnspecified = true;
});
}
代码按预期编译,但我什么也没得到。我认为 url 应该是 localhost://.../api/1/help
,但这不起作用。它发回 404。我试过“1”、“1.0”、“1_0”和“10”。没有任何效果。
我错过了什么?
我认为,Microsoft.AspNetCore.Mvc.Versioning
包的最新 1.1 版本有变化。
尝试在 Configure
方法中添加 app.UseApiVersioning();
。
更新:
在 1.2.0 版中,不再需要 app.UseApiVersioning();
。
我今天构建了我的第一个 dotnet 核心网络 api,发现了一些我无法解决的问题。我希望有人能看到我做错了什么。
这是按预期工作的代码。
[Route("api/[controller]")]
public class HelpController : Controller
{
[HttpGet]
public string Get()
{
return "hello world";
}
}
但是,当我尝试应用版本控制时,我什么也没得到。
[ApiVersion("1.0")]
[Route("api/{version:apiVersion}/[controller]")]
public class HelpController : Controller
{
[HttpGet]
public string Get()
{
return "hello world";
}
}
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddApiVersioning(option =>
{
option.ReportApiVersions = true;
option.DefaultApiVersion = new ApiVersion(1, 0);
option.AssumeDefaultVersionWhenUnspecified = true;
});
}
代码按预期编译,但我什么也没得到。我认为 url 应该是 localhost://.../api/1/help
,但这不起作用。它发回 404。我试过“1”、“1.0”、“1_0”和“10”。没有任何效果。
我错过了什么?
我认为,Microsoft.AspNetCore.Mvc.Versioning
包的最新 1.1 版本有变化。
尝试在 Configure
方法中添加 app.UseApiVersioning();
。
更新:
在 1.2.0 版中,不再需要 app.UseApiVersioning();
。