OpenAPI规范中,required字段能否包含properties未定义的属性名?
OpenAPI v3.1规范中
required字段的使用疑问 我在查阅OpenAPI v3.1规范时,想搞清楚请求体媒体类型里required字段的具体规则。从规范示例能看出,当required列表包含properties中定义的属性名时,这些属性就被标记为必填。
但有个情况让我不确定:当type: object时可以省略properties字段,这表示接受任意结构的对象。我个人认为在这种未指定properties的对象类型定义里,不应该指定带具体属性名的required列表,但翻遍规范也没找到明确禁止这种操作的条款。
所以想确认:OpenAPI规范是否允许required中列出未在properties里定义的属性名,或是在完全没定义properties的情况下指定required列表?
示例1:
required: - name - age # 未指定properties字段
示例2:
properties: - name # `age`未在properties中定义 required: - name - age
更新信息
根据JSON Schema Draft 04的相关条款:
若对象实例的属性集合包含此关键字数组中的所有元素,则该实例满足此关键字的要求。[重点强调]
从严格意义上讲,这种用法似乎是被允许的。
内容的提问来源于stack exchange,提问作者Sergey Kolesnik
相关产品推荐
相关产品推荐

