Многоразовый компонент вне компонентов / схемы?

Есть ли другое место для размещения многоразовых компонентов помимо 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
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
1
0
94
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Возможное решение - поместить части в некоторый ключ расширения, скажем, x-partials, и соответственно изменить $ref. $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.

Другие вопросы по теме