Как указать схему повторно используемого параметра тела запроса в OpenAPI 3.0

Сайт swagger docs показывает пример для этого случая, но не пройдите до конца, чтобы показать определение схемы Pet.

E.g.:

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. Для параметров запроса у вас есть components/parameters, где вы может определять name и schema для каждого параметра. Но я не вижу эквивалента для параметров тела запроса. Например, если у меня есть POST /api/pets с application/json телом:

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

Где описать параметры name, type и legs, включая их имена?

Также по несвязанной теме было бы неплохо, если бы был тег для OpenAPI v3.0 (не знаю, как его создать)

Также возможен связанный вопрос здесь.


person user9645    schedule 09.01.2019    source источник


Ответы (1)


Изучив документацию по чванству, я думаю, что теперь понимаю это, я думаю, что схема Pet будет такой:

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

Мне не хватало атрибута properties.

person user9645    schedule 10.01.2019