我有一个使用.net core 2.2的Web API项目(也许是问题所在。)

路由正在等待带有OpenIdDict的OAuth授权,但这对我来说完全正常。我正在尝试一种非常简单的方法:

startup.cs仅包含:

services.AddApiVersioning();


API控制器具有三种不同的路由用于测试目的。请注意,控制器本身没有[Route()]或[ApiVersion()]批注。

[HttpGet]
[Authorize]
[ApiVersion("2.0")]
[Route("api/v{version:apiVersion}/vt")]
public IActionResult GetVt20()
{
    return Ok("2.0");
}

[HttpGet]
[Authorize]
[ApiVersion("1.0")]
[Route("api/v{version:apiVersion}/vt")]
public IActionResult GetVt10()
{
    return Ok("1.0");
}


如果我提出授权要求,例如

http://localhost:27713/api/v1.0/vt


.net核心回答BadRequest:

{"error":{"code":"UnsupportedApiVersion","message":"The HTTP resource that matches the request URI 'http://localhost:27713/api/v1.0/vt' does not support the API version '1.0'.","innerError":null}}


我想念什么?

最佳答案

从2.1净核心迁移到2.2时,我遇到了同样的问题
只需添加到您的控制器类[ApiController]属性

Github Issue

08-08 04:00