Я определил эту схему:
User:
type: object
required:
- id
- username
properties:
id:
type: integer
format: int32
readOnly: true
xml:
attribute: true
description: The user ID
username:
type: string
readOnly: true
description: The username
first_name:
type: string
description: Users First Name
last_name:
type: string
description: Users Last Name
avatar:
$ref: '#/components/schemas/Image'
example:
id: 10
username: jsmith
first_name: Jessica
last_name: Smith
avatar: image goes here
xml:
name: user
Работает отлично. Вызов GET /user/{id}
отлично отображает образцы данных.
У меня есть вторая схема, которая создает массив из приведенной выше схемы:
ArrayOfUsers:
type: array
items:
type: object
required:
- id
- username
properties:
id:
type: integer
format: int32
xml:
attribute: true
description: The user ID
username:
type: string
description: The username
first_name:
type: string
description: Users First Name
last_name:
type: string
description: Users Last Name
avatar:
$ref: '#/components/schemas/Image'
Это тоже отлично работает. Вызов GET /user
отлично отображает правильную структуру в массиве.
Но я бы предпочел не определять эту схему дважды.
Я хотел бы создать схему, которая использует первую и придерживается массива.
Я потерпел неудачу в этой попытке.
Я пробовал вот так:
UserArray:
type: array
items:
type: object
required:
- id
- username
properties:
things:
type: array
items:
oneOf:
- $ref: '#/components/schemas/User'
Эта попытка дает мне пустой массив:
[
{}
]
Это не желаемый результат.
Есть намеки на это?