Azure API 具有相同动词和不同路由的应用程序多个操作会产生 swagger 错误

Azure API App multiple actions with same verb and different routes gives swagger error

我有一个带有这些 GET 的 ApiController:

public class UsersController : ApiController
{
    public IHttpActionResult GetUsers()
    {
        [...]
    }

    public IHttpActionResult GetUsers(guid ID)
    {
        [...]
    }

    [Route("api/Users/{CodeA}/{CodeB}")]
    public IHttpActionResult GetUsers(string CodeA, string CodeB)
    {
        [...]
    }
}

webapiconfig.cs中的路由是标准路由:

config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}/",
            defaults: new { id = RouteParameter.Optional}
);

尝试使用 swaggerUI 时出现 500 错误,通过 fiddler 我得到:

Swagger 2.0 不支持:路径 'api/utenti' 和方法 'GET' 的多个操作。请参阅配置设置 - \"ResolveConflictingActions\" 以获得潜在的解决方法"

如果我删除最后一个 GET 方法,swagger 会正确解析 api。我从许多来源了解到,通过指定不同的路由可以解决问题,并且我试图通过将 Route 属性添加到最后一个操作来实现这一点。

有人可以指出我正确的方向吗?

提前致谢。

以下代码对我有用:

[Route("users")]
public class UsersController : ApiController
{
    [Route("")]
    public IHttpActionResult GetUsers()
    {
        string test = "";
        return Ok(test);
    }
    [Route("{id}")]
    public IHttpActionResult GetUsers(Guid id)
    {
        string test = "";
        return Ok(test);
    }

    [Route("{CodeA}/{CodeB}")]
    public IHttpActionResult GetUsers(string CodeA, string CodeB)
    {
        string test = "";
        return Ok(test);
    }
}