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();