Swagger Editor路径参数报“Schema error: should NOT have additional properties”错误
修复Swagger Editor的参数Schema错误
这个错误的核心原因是你的参数写法和当前使用的OpenAPI规范版本不匹配,下面分两种情况来解决:
情况1:你使用的是OpenAPI 2.0(文件开头是swagger: '2.0')
如果你的API定义是基于2.0规范的,那你的参数写法本身是正确的。问题出在Swagger Editor的验证模式上:
- 点击编辑器右上角的版本选择按钮(通常显示当前的规范版本,比如"3.0.3")
- 切换到2.0版本,重新验证,错误应该就会消失。
情况2:你使用的是OpenAPI 3.0+(文件开头是openapi: 3.0.x或更高)
3.0规范对参数结构做了调整,type、enum这些字段不能直接放在参数节点下,必须嵌套在schema对象里。修改你的参数部分如下:
paths: '/some-endpoint/{id}/name-and-address': get: tags: - InvolvedParty summary: Retrieve basic information about... operationId: getNameAndAddressUsingGET produces: - '*/*' parameters: - name: id in: path description: The unique identification required: true allowEmptyValue: false # 路径参数建议移除这个字段,因为路径参数不能为空 schema: type: string enum: - '@coderange[1' - 'infinity]' responses: '200': description: Success
额外提醒
- 路径参数的
allowEmptyValue属性实际上没有作用,因为URL路径中的参数不能为空(否则路径本身就无效),所以可以考虑删除这个字段。 - 你的
enum值格式看起来有点奇怪(比如@coderange[1),建议检查是否是输入错误,比如是否应该写成@coderange[1, infinity]这类完整的范围表达式。
内容的提问来源于stack exchange,提问作者Kasper Odgaard
相关产品推荐
相关产品推荐

