Azure API App具有相同动词和不同路由的多个操作会产生错误的错误

时间:2017-03-07 08:50:28

标签: c# asp.net-web-api swagger azure-api-apps

我有一个带有那些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 属性添加到最后一个操作来实现此目的。

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

提前谢谢。

1 个答案:

答案 0 :(得分:1)

以下代码对我有用:

x.includes('a')