我希望在OpenAPI中表示以下JSON对象:
{
"name": "Bob",
"age": 4,
...
}
属性和属性名称的数量未完全预先确定,因此我希望使用additionalProperties。但是,我不太确定如何通过OpenAPI / Swagger 2.0来表示它。我试过这个:
Person:
type: object
additionalProperties:
type:
- int
- string
或等效的JSON:
{
"Person": {
"type": "object",
"additionalProperties": {
"type": ["int", "string"]
}
}
}
但这并不是很有效。有没有办法保持我想要表示的JSON对象的结构,特别是字符串和整数,而不是任意对象类型?
答案 0 :(得分:6)
OpenAPI / Swagger 2.0不支持多类型值。你可以做的最多就是使用typeless schema,这意味着附加属性可以是任何东西 - 字符串,数字,布尔值等等 - 但是你不能指定确切的类型。
Person:
type: object
additionalProperties: {}
这相当于:
Person:
type: object
您可能希望切换到支持oneOf
的OpenAPI 3.0,以便您可以使用:
Person:
type: object
additionalProperties:
oneOf:
- type: string
- type: integer