JSON Schema 入門: SQL 制約のように JSON 構造を検証する
2024-04-13
JSON が parse できても、必須項目不足や型違いは起こります。JSON Schema はその「構造の正しさ」を明示的にチェックするための仕様です。
最小構成 Schema
ルート型を object/array で定義し、properties と required で必須項目を明示します。
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": ["id", "name"],
"properties": {
"id": { "type": "integer" },
"name": { "type": "string", "minLength": 1 }
}
}よく使うキーワード
type、enum、items、additionalProperties: false、oneOf、$ref が中核です。
コード実装
JavaScript は ajv、Python は jsonschema、Go は gojsonschema が代表です。
OpenAPI のボディ定義は JSON Schema のサブセットとして運用されます。
構文検証との違い
JSON.parse は文法、Schema は契約。順番を分けると障害切り分けが速くなります。
チーム展開
Schema をリポジトリ管理し、CI で fixture 検証を回す運用が安定します。