第 1 课
什么是 JSON Schema
Schema 为什么存在、能校验什么,以及它在现代 JSON 工作流中的位置。
JSON Schema 是一种用于描述 JSON 数据形状的词汇。一个 schema 可以说明某个值必须是对象、对象必须包含 name 字段、tags 必须是字符串数组,或者某个标识符应该符合 UUID 格式。
它的意义不只是文档。Schema 可以被校验器、编辑器、CI 检查、API 网关和测试 fixture 使用。
Schema 描述什么
最简单的 schema 回答三个问题:
- 允许什么 JSON 类型?
- 哪些字段可以或必须存在?
- 每个值需要满足哪些约束?
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": { "type": "string", "format": "uuid" },
"name": { "type": "string" }
},
"required": ["id", "name"]
}
这个 schema 校验的是结构,而不是业务真实性。它可以要求 id 存在,但不能证明这个 id 一定存在于数据库中,除非你的应用继续做查询。
Schema 适合哪些场景
- 请求与响应载荷
- 配置文件
- 消息队列与事件流
- 测试 fixture
- 脚本或 AI 系统生成的数据
Schema 不能替代什么
Schema 不能替代 JSON 解析、领域校验、权限检查或数据库约束。它位于系统边界:把原始 JSON 变成程序愿意信任的数据之前,先做结构校验。
好的 schema 最迷人的地方是“无聊”:它让无效数据尽早失败,避免问题一路流进生产环境。