レッスン 3
配列、列挙、形式
リスト、許可値、日付、メールアドレス、URL、UUID を記述します。
オブジェクトは名前付きフィールドを記述します。配列、列挙、形式は、それらのフィールド内によく現れる一般的な制約を記述します。
配列
items で配列の各要素を記述します。
{
"type": "array",
"items": { "type": "string" }
}
オブジェクトの配列では、items 内にオブジェクトスキーマを置きます。
{
"type": "array",
"items": {
"type": "object",
"properties": {
"sku": { "type": "string" },
"quantity": { "type": "integer", "minimum": 1 }
},
"required": ["sku", "quantity"]
}
}
列挙
enum は値を既知の集合に限定します。
{
"type": "string",
"enum": ["draft", "published", "archived"]
}
列挙はワークフロー状態、モード、ロール、制御されたラベルに有用です。顧客名のようにコード外で頻繁に変わる値の列挙は避けてください。
形式
format は文字列に意味的意図を注釈します。
emailuriuuiddatedate-time
バリデーターは形式をどれだけ厳密に強制するかが異なります。多くのライブラリでは、形式検証に追加パッケージまたはオプションが必要です。形式は有用な検証として扱い、ドメイン固有チェックの置き換えにしないでください。
生成スキーマはレビューが必要
スキーマジェネレーターは例から有用なデフォルトを推論できますが、サンプルは一度起きたことしか示しません。契約として公開する前に、配列、列挙、形式をレビューしてください。