Как вложить полезную нагрузку JSON под именованным параметром в Open API 3.0 - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь описать конечную точку API, которая получает запрос PUT со следующей полезной нагрузкой JSON:

{
  "product": {
    "name: "foo",
    "brand": "bar"
  }
}

Вот пример определения:

components:
  schemas:
    Product:
      type: object
      required:
        - name
        - brand
      properties:
        name:
          type: string
        brand:
          type: string
paths:
  /products/{id}:
    parameters:
      - name: id
        in: path
        schema:
          type: integer
        required: true
    put:
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Product'

Однакоэто создает следующую полезную нагрузку JSON (в ней отсутствует ключ «product»):

{
  "name: "foo",
  "brand": "bar"
}

Я пробовал это:

      parameters:
        - name: product
          in: body
          schema:
            type: object
            properties:
              product:
                type: object
                schema:
                  $ref: '#/components/schemas/Product'

Но это не работает. Есть идеи?

1 Ответ

0 голосов
/ 04 октября 2019

Ваш второй пример почти верен, просто измените эту часть

          schema:
            type: object
            properties:
              product:
                type: object
                schema:
                  $ref: '#/components/schemas/Product'

на

          schema:
            type: object
            properties:
              product:
                $ref: '#/components/schemas/Product'

Обратите внимание, что $ref используется непосредственно под именем свойства.

...