【问题标题】:Issue with API Versioning .NET Core 2.2 UnsupportedApiVersionAPI 版本控制问题 .NET Core 2.2 UnsupportedApiVersion
【发布时间】:2019-11-19 15:34:11
【问题描述】:

我正在创建一个 API,需要在其中完成版本控制。我正在使用包 Microsoft.AspNetCore.Mvc.Versioning 3.1.3

我的StartUp.cs如下

在配置服务中

services.AddApiVersioning(o => {
            o.ReportApiVersions = true;
            o.AssumeDefaultVersionWhenUnspecified = true;
            o.DefaultApiVersion = new ApiVersion(1, 0);
        });

        services.AddMvc(options => options.EnableEndpointRouting = false).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

我想要完成版本控制的 2 个控制器如下

namespace JWTWithRefresh.Areas.V1.CMS
{
    [AllowAnonymous]
    [ApiVersion("1.0")]
    [Route("api/[controller]/[action]")]
    public class AppController : Controller
    {
        public IActionResult GetApp()
        {
            return Ok("This is from API V1");
        }
    }
}

另一个控制器如下

namespace JWTWithRefresh.Areas.V2.CMS
{
    [AllowAnonymous]
    [ApiVersion("2.0")]
    [Route("api/[controller]/[action]")]
    public class AppController : Controller
    {
        public IActionResult GetApp()
        {
        return Ok("This is from API V2");
        }
    }
}

我拨打电话时得到的响应如下

端点 = https://localhost:5001/api/App/GetApp?api-version=1.0

响应 =

{
    "error": {
             "code": "UnsupportedApiVersion",
             "message": "The HTTP resource that matches the request URI 'https://localhost:5001/api/App/GetApp' is not supported.",
             "innerError": null
    }
}

如果有人遇到过同样的问题,请指导我解决此问题。

谢谢

【问题讨论】:

标签: api asp.net-core asp.net-core-2.0 asp.net-core-webapi


【解决方案1】:

对于其他遇到问题的人,我按照上面 cmets 中 LGSo 的建议解决了它:

解决方案 1:

Add [ApiController] in Controller

解决方案 2:

禁用 API 行为

services.AddApiVersioning( options => options.UseApiBehavior = false );

【讨论】:

    【解决方案2】:

    像这样更改路由属性

    [Route("v{version:apiVersion}/[controller]/[action]")]
    

    和端点 = https://localhost:5001/api/App/v1/GetApphttps://localhost:5001/api/App/v2/GetApp

    了解更多:https://www.hanselman.com/blog/ASPNETCoreRESTfulWebAPIVersioningMadeEasy.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-13
      • 2021-09-11
      • 1970-01-01
      • 2021-01-04
      • 2016-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多