レッスン 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 は文字列に意味的意図を注釈します。

  • email
  • uri
  • uuid
  • date
  • date-time

バリデーターは形式をどれだけ厳密に強制するかが異なります。多くのライブラリでは、形式検証に追加パッケージまたはオプションが必要です。形式は有用な検証として扱い、ドメイン固有チェックの置き換えにしないでください。

生成スキーマはレビューが必要

スキーマジェネレーターは例から有用なデフォルトを推論できますが、サンプルは一度起きたことしか示しません。契約として公開する前に、配列、列挙、形式をレビューしてください。

実践したいときは関連する DevCove ツールを使えます。任意であり、このレッスンの必須部分ではありません。

関連ツールを開く

コース概要へ戻る