SwaggerUI/YAML - 不应该有其他属性additionalProperty:requestBody

ilo*_*max 8 swagger swagger-ui swagger-2.0 openapi

使用editor.swagger.io设计API 我发现自己无法添加requestBody属性,收到我无法解决的错误:

Schema error at paths['/projects/{projectId}/user'].post
should NOT have additional properties
additionalProperty: requestBody
Jump to line 91
Run Code Online (Sandbox Code Playgroud)

我不明白我做错了什么,特别是在查看requestBody文档之后.研究给我带来的只是误差误导的倾向.

编辑:从这里的答案显示,看起来编辑器应该使用OpenAPI 2.0,但实际上期望3.0同时返回两者的错误.鉴于我已经包含了一个,我会在使用什么方面使用一些帮助

swagger: "2.0"
Run Code Online (Sandbox Code Playgroud)

在文档开头的行.虽然与测试openapi: 3.0.0作为他的回答所示@Mike,我只是得到关于允许附加属性更多的错误.

这就是产生错误的原因,第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: []
Run Code Online (Sandbox Code Playgroud)

ilo*_*max 13

我从外部来源得到了澄清,所以这就是我所学到的:

指定swagger: 2.0也意味着编辑器需要OpenAPI规范2.0.0,而我认为它使用的是OAS 3.我仍然不确定为什么in: body不能在第一时间工作但是我添加了引号"body",这就产生了错误消失.然后我尝试删除引号,它工作正常.

在编写错误报告时,编辑器似乎不太可靠.


Mik*_*ike 7

这个错误消息看起来很熟悉。尝试在参数的 required: 行下面插入 schema: ,然后缩进 type: 和 format: 行。

由于我还没有设置自己的 SwaggerUI 服务器。我获取了您的代码片段并将其粘贴到 SwaggerHub 中。然后我删除了 $ref: 行只是为了进一步简化代码库。这是无错误结果的屏幕截图。 在此输入图像描述