如何在Swagger 2.0编辑器中创建不同的元素类型

时间:2016-08-01 03:57:09

标签: swagger swagger-2.0

我试图在swagger编辑器2.0中将JSON映射到Swagger YAML,我不知道如何将混合数组类型设置到我的模式中

{
  "obj1": [
     "string data",
     1
    ]
}

现在,我的招摇定义有,

schema:
  object1:
    type: array
    items:
      type: string

1 个答案:

答案 0 :(得分:5)

答案取决于您使用的OpenAPI规范版本。

OpenAPI 2.0

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

下一版本OpenAPI 3.0支持混合类型,使用anyOfoneOfnullable: true也可以允许空值。

# openapi: 3.0.1

obj1:
  type: array
  items:
    oneOf:
      - type: string
      - type: integer
    nullable: true  # If nulls are allowed