gpt4 book ai didi

swagger - 如何在 OpenAPI 2.0 中定义混合类型数组(具有不同元素类型)?

转载 作者:行者123 更新时间:2023-12-02 16:07:47 25 4
gpt4 key购买 nike

我尝试将以下 JSON 映射到 OpenAPI 2.0 (Swagger 2.0) YAML 定义,但我不确定如何将混合数组类型设置到我的架构中:

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

现在,我的 OpenAPI 定义有:

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

但这不允许数组内有整数。

有没有办法定义混合类型数组?

最佳答案

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

OpenAPI 3.1

type 可以是类型列表,因此您可以将架构编写为:

# openapi: 3.1.0

obj1:
type: array
items:
type: [string, integer]
# or if nulls are allowed:
# type: [string, integer, 'null']

OpenAPI 3.0.x

OpenAPI 3.0 使用 oneOf/anyOf 和可选的 nullable: true 来支持混合类型,也允许 null。

# openapi: 3.0.1

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

OpenAPI 2.0

OpenAPI 2.0 (Swagger 2.0) 并不真正支持混合类型的数组和参数。您最多能做的就是使用 typeless schema {} 表示 items,这意味着项目可以是任何内容(null 除外)——数字、对象、字符串等。您不能指定items 的确切类型,但您可以添加具有不同项目类型的数组的示例

# swagger: '2.0'

obj1:
type: array
items: {} # <--- means "any type" (except null)
example:
- string data
- 1

注意:无类型架构 {} 只能在主体参数和响应架构中使用。路径、 header 和表单参数需要数组项的原始类型

关于swagger - 如何在 OpenAPI 2.0 中定义混合类型数组(具有不同元素类型)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38690802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com