空のSchema Object

データ構造を制限する必要がある場合は、空のスキーマに必要な制約を定義します。

説明

空のSchema Object {}は、型、フィールド、必須項目などの制約を定義しません。決まった構造を想定する場所で使用すると、文書に必要な検証基準がなくなります。

想定される影響

文書に基づく検証で意図しない構造が許容されたり、クライアントが誤ったデータモデルを想定したりする可能性があります。

対処方法

実際のデータに必要なtype、properties、items、requiredなどの制約を定義してください。任意の構造を意図的に許容する場合は、その目的を明記し、必要な制限を実装に適用します。

例

この例では、オブジェクト型と2つのフィールドを定義し、messageを必須にしています。追加フィールドは別途禁止していません。

変更前

json
{
  "components": {
    "schemas": {
      "GeneralError": {}
    }
  }
}

変更後

json
{
  "components": {
    "schemas": {
      "GeneralError": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "message"
        ]
      }
    }
  }
}

参考資料