C# 单次操作生成多个动作失败的单据
我想知道是否有人在使用C# 单次操作生成多个动作失败的单据,c#,asp.net-web-api,swagger,C#,Asp.net Web Api,Swagger,我想知道是否有人在使用Swagger/swashback 5.0.1记录单个操作时遇到了一个解决方法,该操作可以针对它执行多个操作。例如,以以下内容为例: api/products api/products?productType='cheese' 当试图生成文档时,我得到一个错误,提示这是不受支持的。然而,文档建议通过合并来解决问题 我不明白他们这是什么意思,也不知道该怎么做。有人能提供任何信息吗 我在他们的文档中找到的唯一解决方法是执行以下操作(使用第一项解决): 这并不理想,因为从API
Swagger
/swashback 5.0.1
记录单个操作时遇到了一个解决方法,该操作可以针对它执行多个操作。例如,以以下内容为例:
api/products
api/products?productType='cheese'
当试图生成文档时,我得到一个错误,提示这是不受支持的。然而,文档建议通过合并来解决问题
我不明白他们这是什么意思,也不知道该怎么做。有人能提供任何信息吗
我在他们的文档中找到的唯一解决方法是执行以下操作(使用第一项解决):
这并不理想,因为从API的角度来看,我希望所有的变化都存在/可见。如Swashback文件中所述,关于此设置: 与WebApi不同,Swagger 2.0不包含查询字符串 映射URL时的组件
这不是一个Web API问题,Swagger 2.0规范实际上不支持使用查询参数。在哪里可以找到如何使用Swagger执行多个操作?不,显然在git页面上,这是预期的行为。我已经放弃使用它,因为它有很多bug,而且您不得不调整生成的YAML。@Null这可能会有帮助,其他人也有类似的经历。我在Stackoverflow上发现了一篇类似的帖子,建议将重载方法命名为不同的名称,然后简单地使用route属性来定义路由。例如,如果我已经有了“Get()”,那么只需将第二个方法命名为“GetProduct()”。然后,我将创建一个route属性,并将路由设置为“api/”,并定义“HttpGet”动词。这就解决了我的问题。在API文档编制过程中不会调用swashbuckle.ResolveConflictingActions过滤器的情况是,参数名为“id”。它生成一个“api/{id}”路由
c.ResolveConflictingActions(x => x.First());