Многоразовый компонент вне компонентов / схемы? - PullRequest
0 голосов
/ 08 мая 2018

Есть ли другое место для размещения компонентов многократного использования за пределами components/schema?

У меня есть «частичное» (из-за отсутствия лучшего термина), которое я хотел бы $ref в другом месте, но я не хочу в качестве «Модели»:

Некоторые примеры:

NotFoundError:
  type: object
  properties:
    code:
      type: integer
      format: int32
      example: 404
    message:
      type: string
      example: "Resource Not Found"
ID-Array:
  type: array
  items:
    $ref: '#/components/schemas/ID'
  writeOnly: true
ID:
  type: integer
  format: int32
  example: 1
ID-ReadOnly:
  allOf:
    - $ref: '#/components/schemas/ID'
    - readOnly: true
ID-WriteOnly:
  allOf:
    - $ref: '#/components/schemas/ID'
    - writeOnly: true

1 Ответ

0 голосов
/ 08 мая 2018

Возможное решение состоит в том, чтобы поместить партиалы в некоторый ключ расширения , скажем x-partials, и соответственно изменить $ref s. $ref не волнует, что путь, пока цель находится в ожидаемом формате.

x-partials:
  ID:
    type: integer
    format: int32
    example: 1

components:
  schemas:
    ID-Array:
      type: array
      items:
        $ref: '#/x-partials/ID'
      writeOnly: true
    ID-ReadOnly:
      allOf:
        - $ref: '#/x-partials/ID'
        - readOnly: true
    ID-WriteOnly:
      allOf:
        - $ref: '#/x-partials/ID'
        - writeOnly: true

Таким образом, например, партиалы не будут отображаться в разделе «Модели» пользовательского интерфейса Swagger.

...