小编Ron*_*zan的帖子

ASP.NET Core API 版本控制 - 所有版本使用相同的控制器

我有一个 ASP.NET Core 3.1 API,我正在为我的一个控制器引入新版本。我正在使用Microsoft.AspNetCore.Mvc.Versioning NuGet 包,并且已将新版本设置为默认版本。我的所有其他控制器都应适用于旧版本(1.0)和新版本(1.1)。

例如:

    [ApiVersion("1.0", Deprecated = true)]
    public class MySampleController
    {
    }
    
    [ApiVersion("1.1")]
    public class MyNewSampleController
    {
    }

    [ApiVersion("1.0", Deprecated = true)]
    [ApiVersion("1.1")]
    public class AllOtherController
    {
    }
Run Code Online (Sandbox Code Playgroud)

问题:
我真的必须将所有版本添加到所有控制器吗?
有更好/正确的方法来处理这个问题吗?

我尝试使用 [ApiVersionNeutral] 但这似乎不正确,根据文档,应该只在特殊情况下使用。如果我不添加 [ApiVersion] 属性,则默认为新的 1.1 版本,1.0 不再有效。

由于这是我的第一个问题,我希望它符合指导方针:)

c# api-versioning asp.net-core asp.net-core-webapi asp.net-core-3.1

6
推荐指数
1
解决办法
4999
查看次数