SwaggerUI/YAML - 不应有附加属性 additionalProperty: requestBody
SwaggerUI/YAML - should NOT have additional properties additionalProperty: requestBody
使用 editor.swagger.io 设计 API 我发现自己无法添加 requestBody 属性,出现无法解决的错误:
Schema error at paths['/projects/{projectId}/user'].post
should NOT have additional properties
additionalProperty: requestBody
Jump to line 91
我不明白我做错了什么,尤其是在看了 requestBody documentation 之后。研究给我带来的只是错误误导的倾向。
编辑:从这里的答案来看,编辑器似乎应该使用 OpenAPI 2.0,但实际上期望 3.0,同时返回两者的错误。考虑到我已经包含了
,我会在使用方面寻求一些帮助
swagger: "2.0"
文档开头的行。
如@Mike 在他的回答中所示,使用 openapi: 3.0.0
进行测试时,我只是收到更多关于允许的附加属性的错误。
这是产生错误的原因,第 91 行是 post:
.
/projects/{projectId}/user:
post:
tags:
- projects
summary: Modify project user.
operationId: modifyProjectUser
parameters:
- name: projectId
in: path
description: ID of the project
required: true
type: integer
format: int32
requestBody:
content:
application/json:
schema:
$ref: '#/definitions/User'
responses:
"200":
description: Successful operation
schema:
type: array
items:
$ref: "#/definitions/User"
security:
- api_key: []
这条错误消息看起来很眼熟。尝试在参数的 required: 行下插入一个 schema: ,然后缩进 type: 和 format: 行。
因为我还没有设置我自己的 SwaggerUI 服务器。我获取了您的代码片段并将其粘贴到 SwaggerHub 中。然后我删除了 $ref: 行只是为了进一步简化代码库。这是无错误结果的屏幕截图。
我从外部来源得到了说明,所以这是我学到的:
指定 swagger: 2.0
也意味着 OpenAPI Specification 2.0.0 是编辑器所期望的,而我认为它使用的是 OAS 3。
我仍然不确定为什么 in: body
首先不起作用,但我在 "body"
周围添加了引号,这使得错误消失了。然后我尝试删除引号并且效果很好。
编辑器报错好像不太靠谱
就我而言,因为我使用的是 openapi: 3.0.0。模式 $ref 应该是 '#/components/schemas/{schemaname}'
而不是 '#/definitions/schemas/{schemaname}'
使用 editor.swagger.io 设计 API 我发现自己无法添加 requestBody 属性,出现无法解决的错误:
Schema error at paths['/projects/{projectId}/user'].post
should NOT have additional properties
additionalProperty: requestBody
Jump to line 91
我不明白我做错了什么,尤其是在看了 requestBody documentation 之后。研究给我带来的只是错误误导的倾向。
编辑:从这里的答案来看,编辑器似乎应该使用 OpenAPI 2.0,但实际上期望 3.0,同时返回两者的错误。考虑到我已经包含了
,我会在使用方面寻求一些帮助swagger: "2.0"
文档开头的行。
如@Mike 在他的回答中所示,使用 openapi: 3.0.0
进行测试时,我只是收到更多关于允许的附加属性的错误。
这是产生错误的原因,第 91 行是 post:
.
/projects/{projectId}/user:
post:
tags:
- projects
summary: Modify project user.
operationId: modifyProjectUser
parameters:
- name: projectId
in: path
description: ID of the project
required: true
type: integer
format: int32
requestBody:
content:
application/json:
schema:
$ref: '#/definitions/User'
responses:
"200":
description: Successful operation
schema:
type: array
items:
$ref: "#/definitions/User"
security:
- api_key: []
这条错误消息看起来很眼熟。尝试在参数的 required: 行下插入一个 schema: ,然后缩进 type: 和 format: 行。
因为我还没有设置我自己的 SwaggerUI 服务器。我获取了您的代码片段并将其粘贴到 SwaggerHub 中。然后我删除了 $ref: 行只是为了进一步简化代码库。这是无错误结果的屏幕截图。
我从外部来源得到了说明,所以这是我学到的:
指定 swagger: 2.0
也意味着 OpenAPI Specification 2.0.0 是编辑器所期望的,而我认为它使用的是 OAS 3。
我仍然不确定为什么 in: body
首先不起作用,但我在 "body"
周围添加了引号,这使得错误消失了。然后我尝试删除引号并且效果很好。
编辑器报错好像不太靠谱
就我而言,因为我使用的是 openapi: 3.0.0。模式 $ref 应该是 '#/components/schemas/{schemaname}'
而不是 '#/definitions/schemas/{schemaname}'