从样例推断字段类型,明确必填与空值的区别
样例只能说明已经出现的数据,不能覆盖接口允许的所有值。使用多条有代表性的记录,检查可选字段和类型差异,再决定如何采用生成的 Draft 2020-12 Schema。
如何操作
提供单条记录或多份样例
粘贴一个 JSON 对象,或用顶层数组放入多份样例。这个外层数组是样例集合,Schema 描述的是其中一条记录;要推断数组字段,请把数组放进对象。
确认必填与额外字段策略
默认不会推断必填字段。只有符合接口约定时,才选择“我确认:样例共有字段设为必填”。除非样例已覆盖所有允许的字段,否则应保留“允许样例之外的字段”。
同时检查 Schema 与字段说明
生成预览后检查联合类型、required 字段和提醒。字段说明会列出观察到的路径与出现次数,导出前可以选择文档语言。
输入与预期输出
email 可以缺失,也可以显式为 null
界面设置: Schema 名称设为 User;必填字段策略选择“我确认:样例共有字段设为必填”;勾选“允许样例之外的字段”。
[{"id":1,"email":"[email protected]"},{"id":2,"email":null},{"id":3}]{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "User",
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"email": {
"type": [
"string",
"null"
]
}
},
"required": [
"id"
],
"additionalProperties": true
}id 在三份样例中都出现,因此在当前显式选择的策略下成为必填字段。email 只出现两次,所以可以缺失;其类型同时保留已观察到的 null。看起来像邮箱的字符串不会自动生成 format: email。
边界与检查事项
- 缺少样例不能推导出限制
- 空样例列表会生成不限制结构的 Schema 并给出提醒;空数组不能说明元素类型。格式、数值范围和业务规则需要另行确认,不能由少量值可靠推断。
- 输入结构与推断上限
- 单独输入 42 这样的标量会被拒绝。输入上限为 1 MiB、1,000 份样例、500 个不同字段路径、48 层和 25,000 个输入节点;这些限制分别生效,并非所有不足 1 MiB 的文档都能处理。
结果解读与常见疑问
必填字段就不能是 null 吗?
不是。required 控制字段是否必须出现,type 控制是否允许 null。一个在每份样例中都存在且值为 null 的字段,可以同时是必填字段并允许 null。
导出的字段说明会包含样例原值吗?
Schema 与字段说明记录类型、路径及出现次数,不会嵌入样例原值。但字段名称和你填写的标题仍会保留,分享前应检查这些内容。