这个生成器会推导哪些 Schema 规则?
| 样例内容 | 推导结果 | 使用含义 |
|---|---|---|
{"name":"张三"} | type: object + properties.name | 为对象中的每个已出现字段建立属性规则。 |
[{"id":1}] | type: array + items | 按已给元素推导数组项;异构元素会使用 anyOf。 |
42 / 8.5 | integer / number | 根据当前数值是否为整数区分类型。 |
| 日期、邮箱、HTTP URL | format | 只识别明显的 date、date-time、email、uri 模式。 |
| 勾选 required | required 数组 | 把该样例里每个对象的已有键写入 required。 |
required 选项应该怎么理解?
“样例中出现”与“接口永远必填”不是一回事。勾选后,工具会把当前对象中的每个键加入 required,便于你先得到严格的草稿;如果接口存在灰度字段、版本差异或条件字段,应在生成后按接口文档删减或改写。
适合勾选
你拿到的是稳定协议、配置文件或已经定义清楚的服务端响应,并且样例覆盖了必填字段。
建议取消
样例来自日志、分页列表或可选字段很多的第三方接口。此时先保留属性类型,再和文档确认 required。
生成后还需要补充什么?
- 补上
description、examples、枚举值、数值范围、字符串长度与业务正则。 - 决定是否使用
additionalProperties。当前结果不会擅自禁止未知字段,避免单个样例把 Schema 写得过窄。 - 用多份真实请求和响应验证 Schema,再将其放进 OpenAPI、表单校验或 CI 检查流程。
本页生成 Schema,不执行 JSON Schema 校验。完整校验需要明确所用 Draft、format 策略、自定义关键字和校验器实现,不能只靠一个样例推断。
常见问题
- 支持哪一版 JSON Schema?
- 输出的
$schema指向 Draft 2020-12,使用常见的 type、properties、required、items、anyOf 和 format 结构。 - 数组里的两个对象字段不同会怎样?
- 工具会按每个已给元素推导 item Schema;当结构不同会产生
anyOf,请再判断它们是否应统一成一个对象模型。 - 可以直接拿来校验生产数据吗?
- 不建议直接使用。先补充业务约束并使用真实数据验证,尤其要检查 required、空值、枚举和数值范围。