レッスン 8
JSON Schema の基本
型、必須フィールド、制約でドキュメントの形を記述・検証する。
JSON Schema は、JSON ドキュメントにルールを付与する語彙です: どのプロパティが存在するか、その型、値の制約。チームは API payload、設定ファイル、生成データの検証に使います。
最小限のスキーマ
このスキーマは、必須の文字列 name と任意の数値 age を持つオブジェクトを記述します。
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"name": { "type": "string" },
"age": { "type": "integer", "minimum": 0 }
},
"required": ["name"],
"additionalProperties": false
}
有効なインスタンス:
{ "name": "Ada", "age": 30 }
無効: name 欠落、型不一致、additionalProperties が false のときの未知の余分なキー。
主要キーワード
| キーワード | 目的 |
|---|---|
type | string、number、integer、boolean、array、object、null |
properties | オブジェクトフィールドの形 |
required | 必須プロパティ名 |
items | 各配列要素のスキーマ |
enum | 許可されるリテラル値 |
minLength / maxLength | 文字列の境界 |
スキーマが重要な理由
- フロントエンドとバックエンドチーム間の契約
- デプロイ前の CI での自動検証
- 機械可読のまま残るドキュメント
- OpenAPI はリクエストボディに JSON Schema を埋め込むか参照することが多い
検証ワークフロー
- 期待する payload 用のスキーマを作成または生成する。
- バリデーター(ライブラリまたはツール)で受信 JSON を実行する。
- 実世界のエッジケースが現れたらデータかスキーマを修正 — スキーマもコードのように進化する。
スキーマは前のレッスンの JSON 構文理解に取って代わるものではありません — JSON がすでにパース可能になった上で、許可される構造を記述するものです。