swagger 3:字典的模式
swagger 3: schema for dictionary of dictionaries
我想建模一个模式,其中响应是字典的字典:
{
'id1': {
'type': 'type1',
'active': true,
},
'id2': {
'type': 'type2',
'active': false,
},
...
...
}
我定义了:
components:
schemas:
accountData:
type: object
required:
- type
- active
properties:
type:
type: string
active:
type: boolean
accounts:
type: object
additionalProperties:
type: object
properties:
account-id:
type: object
$ref: '#/components/schemas/accountData'
现在我想定义'#/components/schemas/accounts',它是'#/components/schemas/account'的重复字典。
我是 OpenApi 3 的新手,我不知道该怎么做。
你快到了。 additonalProperties
中指定的架构对应于 <key, value>
字典中的值类型。在您的示例中,值是 accountData
个对象,因此您应该使用:
components:
schemas:
...
accounts:
type: object
additionalProperties:
$ref: '#/components/schemas/accountData'
我想建模一个模式,其中响应是字典的字典:
{
'id1': {
'type': 'type1',
'active': true,
},
'id2': {
'type': 'type2',
'active': false,
},
...
...
}
我定义了:
components:
schemas:
accountData:
type: object
required:
- type
- active
properties:
type:
type: string
active:
type: boolean
accounts:
type: object
additionalProperties:
type: object
properties:
account-id:
type: object
$ref: '#/components/schemas/accountData'
现在我想定义'#/components/schemas/accounts',它是'#/components/schemas/account'的重复字典。
我是 OpenApi 3 的新手,我不知道该怎么做。
你快到了。 additonalProperties
中指定的架构对应于 <key, value>
字典中的值类型。在您的示例中,值是 accountData
个对象,因此您应该使用:
components:
schemas:
...
accounts:
type: object
additionalProperties:
$ref: '#/components/schemas/accountData'