【问题标题】:How to specify the schema of a reusable request body parameter in OpenAPI 3.0如何在 OpenAPI 3.0 中指定可重用请求正文参数的架构
【发布时间】:2019-01-09 21:57:47
【问题描述】:

swagger docs site 显示了这种情况下的示例,但它并没有始终显示Pet 架构的定义。

例如:

paths:
  /pets:
    post:
      summary: Add a new pet
      requestBody:
        $ref: '#/components/requestBodies/PetBody'
  /pets/{petId}
    put:
      summary: Update a pet
      parameters: [ ... ]
      requestBody:
        $ref: '#/components/requestBodies/PetBody'
components:
  requestBodies:
    PetBody:
      description: A JSON object containing pet information
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Pet'

我不明白在这种情况下请求正文参数名称的去向。我想看看#/components/schemas/Pet 的定义。对于query parameters,您有components/parameters,您可以在其中为每个参数定义nameschema。但我没有看到请求正文参数的等价物。例如,如果我有一个 POST /api/petsapplication/json 正文:

{ "name": "Fluffy", "type": "cat", "legs": 4 }

我在哪里描述参数nametypelegs,包括它们的名称?

另外关于一个不相关的话题,如果有一个 OpenAPI v3.0 的标签会很好(不知道如何创建一个)

也可能有相关问题here

【问题讨论】:

    标签: openapi


    【解决方案1】:

    在搜索了 swagger 文档之后,我想我现在明白了,我认为 Pet 架构将是:

    components:
       schemas:
          Pet:
             type: object
             properties:
                name:
                   type: string
                type:
                   type: string
                legs:
                   type: integer
             required:
                - type
    

    我错过了properties 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      • 2022-11-03
      • 1970-01-01
      • 2021-02-12
      • 1970-01-01
      相关资源
      最近更新 更多