为json数组编写swagger模型对我来说似乎非常简单,例如,如果我有这个数组:
[
{
"name": "dave",
"number": 123
},
{
"name": "mary",
"number": 456
}
]
Run Code Online (Sandbox Code Playgroud)
我会为它写下面的招摇模型:
"schema": {
"type": "array",
"items": {
"$ref": "Student"
}
}
"Student": {
"id": "Student",
"required": [
"name",
"number"
],
"properties": {
"name": {
"type": "string"
},
"number": {
"type": "integer",
"format": "int32"
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我有以下内容:
{
"123": {
"name": "dave"
},
"456": {
"name": "mary"
}
}
Run Code Online (Sandbox Code Playgroud)
我该如何编写这个模型?
提前致谢.
Ron*_*Ron 10
要描述请求模型,您需要使用additionalProperties属性.请注意,这在Swagger 2.0中可用,并且在早期版本中不可用.
"definitions": {
"Student": {
"type": "object",
"required": [ "name" ],
"properties": {
"name": {
"type": "string"
}
}
},
"Students": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/Student"
}
}
}
Run Code Online (Sandbox Code Playgroud)
上面你看到的Student模型,当前包含"名称"属性,但我假设你会添加更多.从上面的示例中,"name"属性是必需的.
第二个模型是Students包含地图的对象(additionalProperties).每个属性都是Student类型(通过引用模型完成,但理论上可以内联定义).
您不能做的一件事是声明键(或属性名称)是整数或给定类型.这可能得到patternedProperties了Swagger 2.0所不具备的支持.换句话说,没有技术方法来限制密钥的内容.
| 归档时间: |
|
| 查看次数: |
6516 次 |
| 最近记录: |