OpenAPI路径操作使用SEARCH方法时Swagger Editor报错如何处理
问题原因
OpenAPI 2.0(Swagger 2.0)仅支持GET、POST、PUT、DELETE、PATCH、OPTIONS、HEAD、TRACE这几个标准HTTP方法,不支持SEARCH这类WebDAV扩展的自定义方法,这是Swagger Editor报非法HTTP方法错误的核心原因。
另外你当前的配置存在两个明显问题:
- YAML结构错误:
summary、description是操作级字段,不能直接挂载在路径节点下,必须放在对应HTTP方法的子节点下 - 方法名大小写不匹配:你C#代码中声明的是大写
SEARCH,YAML中写的小写search不符合HTTP方法大小写敏感的规则
解决方案
- 升级OpenAPI版本到3.0及以上,该版本原生支持符合HTTP token规范的自定义HTTP方法。
- 修正YAML配置结构,参考示例如下:
paths: /dnlds/bwaaccount: SEARCH: summary: Searches for BOSS accounts description: >- Receives a BOSS search request and then the API will search the BOSS database. # 按需补充请求参数、请求体、响应结构定义即可 responses: '200': description: BOSS账户搜索结果返回成功
- 如果你使用.NET的Swashbuckle组件自动生成OpenAPI文档,默认配置会过滤非标准HTTP方法,需要新增自定义操作选择器逻辑,让组件识别
[AcceptVerbs("SEARCH")]标记的接口,避免自动生成文档时遗漏该接口。 - 如果修正配置后Swagger Editor仍报方法非法,升级到最新版Swagger Editor即可,新版本已完整适配OpenAPI 3.x的自定义方法校验规则。
内容的提问来源于stack exchange,提问作者Bobbaumg
相关产品推荐
相关产品推荐

