Прежде всего, помните, что oneOf
поддерживается только в OpenAPI 3.0 (openapi: 3.0.0
), но не в OpenAPI 2.0 (swagger: '2.0'
).
Ваш сценарий может быть определен с помощью oneOf
, например, так:
oneOf:
- type: array
items:
type: string
- type: array
items:
type: integer
- type: array
items:
$ref: '#/components/schemas/SchemaA'
В ванильной JSON-схеме type: array
можно переместить из oneOf
и поместить рядом с oneOf
, но я не уверен, позволяет ли OpenAPI это (спецификация OpenAPI неясна для этого).
type: array
oneOf:
- items:
type: string
- items:
type: integer
- items:
$ref: '#/components/schemas/SchemaA'
Я пробовал это, но Swagger UI не может сделать это
В настоящее время Swagger UI не генерирует автоматически примеры для oneOf
и anyOf
схем (см. эту проблему ). Обходной путь должен добавить example
вместе с oneOf
вручную:
example: [1, 2, 3] # <------
oneOf:
- type: array
items:
type: string
- type: array
items:
type: integer
- type: array
items:
$ref: '#/components/schemas/SchemaA'