如何在OpenAPI 3.0.3中定义不允许包含null对象的数组
解决OpenAPI 3.0.3数组禁止包含null对象的问题
要让users数组不允许包含null对象,只需确保数组元素的Schema明确排除null值即可,具体有两种处理方式:
方式1:显式禁止数组元素为null
在users数组的items配置中添加nullable: false,强制约束元素不能是null:
CreateUsersRequest: type: object required: - users properties: users: type: array items: $ref: '#/components/schemas/User' nullable: false # 明确禁止元素为null
方式2:依赖User Schema的默认约束
你的User Schema已经定义type: object,在OpenAPI 3.0.x规范中,未设置nullable: true的Schema默认不允许null值。如果验证工具严格遵循规范,原定义其实已经会拒绝包含null的数组实例。
如果遇到验证工具未生效的情况,推荐用方式1显式添加约束,消除歧义。
按照上述定义,你提供的包含null的数组实例会验证失败,符合预期。
内容的提问来源于stack exchange,提问作者SimonD
相关产品推荐
相关产品推荐

