的Web API - 扬鞭文档错误500
当我访问招摇网址:http://localhost:28483/swagger/ui/index
,它生成此错误:的Web API - 扬鞭文档错误500
500 : undefined http://localhost:28483/swagger/docs/v1
任何想法?
更新时间: 看到这个细节错误在Firebug:
Not supported by Swagger 2.0: Multiple operations
with path 'api/BimModel' and method 'GET'. See the config setting - \"ResolveConflictingActions\" for
a potential workaround
扬鞭可能会考虑两个动作为一个操作(就像这个常见的场景的情况下)...
GET api/Products
GET api/Products/{id}
看来你可以使用attribute routing修复它并使用上面这些属性你的举动如此激动人心,会分开承认他们。
[Route("api/Products")]
[Route("api/Products/{id:guid}")]
在控制器,它有两个不同的GET操作,它是由扬鞭不允许的。 我建议要么为每个控制器只有单一的GET操作或modify the router in WebApiConfig
不幸的是,在ApiConfig中修改路由器并没有帮助。仍然有'不支持Swagger 2.0:多路径操作...'。看起来我必须为每个get方法创建新的控制器,或者有什么其他方式来强制swagger进行合作(某些属性,...)? – wolen
您是否尝试过在您的swagger配置中启用此功能?
c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());
尽管这可能会解决错误,但其他操作不会显示出来然后在大摇大摆。 – Evan
我在将属性路由与默认路由混合时遇到同样的问题。 当我删除默认路由时,问题就消失了。缺点是,没有定义默认路由,我不得不将属性路由添加到我的所有控制器。
所以从我的WebApiConfig我删除:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
而添加的属性路由到我的控制器:
[Route("Session")] // Added this attribute
public async Task<IHttpActionResult> Get()
...
[Route("Session/{id}")] // Added this attribute
public async Task<IHttpActionResult> Get(int id)
在现实中,我在我的控制器使用[RoutePrefix("Session")]
和我的方法使用[Route("")]
,但结果应该是一样的。
由于参数名称在属性路由语句和方法签名之间不匹配,我得到此错误。
[HttpGet("{id}")]
public IActionResult Get(string deviceNumber){
...
将“{id}”更改为“{deviceNumber}”后,它修复了错误。
你有什么错误? –
@CongLe:这就是我在浏览器中获得的一切。 –