配列の要素数の上限の未定義

要素数を制限する必要がある配列では、maxItemsで上限を指定します。

説明

配列スキーマのmaxItemsは、許容する要素数の上限を表します。サービスが処理できるサイズに上限がある場合は、その上限を文書と実装の両方に反映してください。

想定される影響

大きな配列を無制限に処理すると、サーバーのリソース消費が増えたり、クライアントがレスポンスを処理しにくくなったりする可能性があります。

対処方法

制限が必要な配列に、サービスの要件に合うmaxItemsを指定し、サーバーでも同じ上限を適用してください。レスポンスの配列は必要に応じてページ分割します。すべての配列に任意の上限を加える必要はありません。

例

この例では、配列の要素数を最大5個にしています。実際に許容する範囲に合わせて値を選んでください。

変更前

json
{
  "components": {
    "schemas": {
      "GeneralError": {
        "properties": {
          "message": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}

変更後

json
{
  "components": {
    "schemas": {
      "GeneralError": {
        "properties": {
          "message": {
            "type": "array",
            "maxItems": 5,
            "items": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}

参考資料