我试图在swagger编辑器2.0中将JSON映射到Swagger YAML,我不知道如何将混合数组类型设置到我的模式中
{
"obj1": [
"string data",
1
]
}
现在,我的招摇定义有,
schema:
object1:
type: array
items:
type: string
答案 0 :(得分:5)
答案取决于您使用的OpenAPI规范版本。
OpenAPI 2.0(Swagger 2.0)并不真正支持混合型数组和参数。您可以做的最多是使用typeless schema {}
作为items
,这意味着项目可以是任何内容(null
除外) - 数字,对象,字符串等。您无法指定items
的确切类型,但可以添加具有不同项类型的数组的example
。
# swagger: '2.0'
obj1:
type: array
items: {} # <--- means "any type" (except null)
example:
- string data
- 1
注意:无类型架构{}
只能用于正文参数和响应架构。路径,标题和表单参数需要数组项的基元type
。
下一版本OpenAPI 3.0支持混合类型,使用anyOf
,oneOf
和nullable: true
也可以允许空值。
# openapi: 3.0.1
obj1:
type: array
items:
oneOf:
- type: string
- type: integer
nullable: true # If nulls are allowed