Ответ зависит от того, используете ли вы OpenAPI 2.0 (swagger: '2.0'
) или OpenAPI 3.0 (openapi: 3.0.0
).
OpenAPI 2.0
OpenAPI 2.0 не поддерживает условные зависимости.Вы можете только устно задокументировать такие зависимости в description
.
OpenAPI 3.0
. Вы можете использовать oneOf
для описания условных зависимостей в OpenAPI 3.0, аналогично тому, как вы это делали в JSONСхема.Приведенный ниже пример основан на ответах на условную зависимость схемы JSON от значения .
Примечание. oneOf
является частью спецификации OpenAPI (например, вы можете написать определения API, которые включаютoneOf
), реальная поддержка инструментов для oneOf
может отличаться.
type: object
required:
- fieldA
properties:
fieldA:
type: string
enum:
- VAL1
- VAL2
- VAL3
fieldB:
type: string
pattern: '^[a-z]+$'
oneOf:
# If fieldA = VAL1, then fieldB must be 5 chars long
- properties:
fieldA:
enum: [VAL1]
fieldB:
minLength: 5
maxLength: 5
# Otherwise (if fieldA = VAL2 or VAL3) fieldB must be 10 chars long
- properties:
fieldA:
enum: [VAL2, VAL3]
fieldB:
minLength: 10
maxLength: 10