如何在 OpenAPI 3 中定义另一个模式的数组?
How to define an array of another schema in OpenAPI 3?
我定义了这个模式:
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'
这次尝试给了我一个空数组:
[
{}
]
这不是我想要的结果。
有什么提示吗?
User
个对象的数组定义如下:
UserArray:
type: array
items:
$ref: '#/components/schemas/User'
我定义了这个模式:
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'
这次尝试给了我一个空数组:
[
{}
]
这不是我想要的结果。
有什么提示吗?
User
个对象的数组定义如下:
UserArray:
type: array
items:
$ref: '#/components/schemas/User'