Как исключить свойство из ссылочной схемы? - PullRequest
0 голосов
/ 01 марта 2020

У меня есть конечная точка для создания адреса и одна для его обновления. Описывая это в спецификации OpenAPI c, я хотел бы использовать компонент для адреса, чтобы мне не приходилось указывать адрес дважды. Теперь проблема в том, что адресный объект, используемый для обновления, должен включать свойство «id», а тот, который используется для создания, - нет.

Так что в основном я ищу способ описать полное адрес (включая свойство id) в разделе компонентов, а затем ссылка на конечную точку создания, но исключая свойство id там.

1 Ответ

1 голос
/ 05 марта 2020

Вы можете расширить другой тип, используя ключевое слово allOf, , как описано здесь

В приведенном ниже примере creationType имеет только свойство name, но updateType имеет все свойства creationType, а также свойство id.

Пример:

components:
  schemas:
    creationType:
      type: object
      properties:
        name:
          type: string
    updateType:
      allOf:
      - $ref: '#/components/schemas/creationType'
      - type: object
        required:
        - id
        properties:
          id:
            type: string

...