如何在OpenAPI(Swagger)中定义可以是字符串或null的属性?
我有一个JSON模式文件,其中一个属性被定义为如何在OpenAPI(Swagger)中定义可以是字符串或null的属性?,swagger,openapi,Swagger,Openapi,我有一个JSON模式文件,其中一个属性被定义为string或null: "type":["string", "null"] 当转换为YAML(用于OpenAPI/Swagger)时,它将变成: 类型: -“空” -串 但“招摇过市”编辑器显示了一个错误: 架构“类型”键必须是字符串 在OpenAPI中定义可空属性的正确方法是什么?这取决于OpenAPI版本 OpenAPI 3.1 您的示例在OpenAPI 3.1中有效,它与JSON模式2020-12完全兼容 类型: -“null”#注意“n
string
或null
:
"type":["string", "null"]
当转换为YAML(用于OpenAPI/Swagger)时,它将变成:
类型:
-“空”
-串
但“招摇过市”编辑器显示了一个错误:
架构“类型”键必须是字符串
在OpenAPI中定义可空属性的正确方法是什么?这取决于OpenAPI版本 OpenAPI 3.1 您的示例在OpenAPI 3.1中有效,它与JSON模式2020-12完全兼容
类型:
-“null”#注意“null”周围的引号
-串
#同
类型:['null',字符串]
上述内容相当于:
-键入:“null”#注意“null”周围的引号
-类型:字符串
OAS 3.0.x(见下文)中使用的nullable
关键字在OAS 3.1中不存在,它被删除以支持'null'
类型
OpenAPI 3.0.x
可为空的字符串定义如下:
类型:字符串
可为空:真
这与JSON模式语法不同,因为高达3.0.x的OpenAPI版本使用它们自己的(“扩展子集”)。区别之一是类型
必须是单一类型,不能是类型列表。也没有'null'
类型;相反,关键字用作类型
修饰符,以允许空值
值
OpenAPI 2.0
OAS2不支持'null'
作为数据类型,因此您运气不好。只能使用类型:string
。但是,有些工具支持将x-nullable:true
作为供应商扩展,即使nulls不是OpenAPI 2.0规范的一部分
考虑迁移到OpenAPI v。3以获得对空值的正确支持。相关:。