Ответ 1
Swagger не поддерживает описание условных или взаимоисключающих параметров (любого типа).
У меня есть ресурс swagger 2.0, определенный ниже. Как я могу сделать "param1 или param2" обязательным? Caller должен передать либо param1, либо param2.
/some/res:
put:
summary: some resource
responses:
200:
description: Successful response
schema:
$ref: '#/definitions/SomeResponse'
parameters:
- name: param1
type: string
description: param1
in: formData
required: false
- name: param2
type: string
description: param2
in: formData
required: false
Swagger не поддерживает описание условных или взаимоисключающих параметров (любого типа).
Спецификация Swagger не поддерживает условное требование или включение/исключение параметров.
То, что я хотел бы предложить, - четко указать в описании свои правила включения/исключения параметров запроса. Затем, используя фреймворк проверки, который зависит от вашего языка (т.е. Javax.validation для Java, рестайлинг-валидация для восстановления и т.д.), Соответствующим образом проверяйте параметры.
В разделе "Зависимости параметров" Описание параметров Документы Swagger:
Swagger не поддерживает зависимостей параметров и взаимоисключающих параметров. Существует открытый запрос функции на https://github.com/OAI/OpenAPI-Specification/issues/256.
По состоянию на июнь 2017 года этот выпуск имел 21 приоритет, что делает его третьей по значимости проблемой в проекте.