You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 22:52:11