パラメーター値の形式の未定義

OpenAPI 3.0のパラメーターの型と表現方法をschemaまたはcontentで指定します。

説明

OpenAPI 3.0のParameter Objectは、schemaまたはcontentのどちらかで値を定義する必要があります。どちらもないと、パス、クエリ、ヘッダー、Cookieのパラメーターをどの形式で渡すかが不明確になります。

想定される影響

クライアントが誤った型や形式の値を送信し、リクエストが失敗したりSDKがパラメーターを誤って処理したりする可能性があります。

対処方法

通常の値の型と制約にはschemaを、メディアタイプを指定する表現にはcontentを使用してください。両方を指定してはいけません。$refを使用する場合は、参照先のパラメーター定義が正しいことを確認します。

例

この例では、/user/{id}のidを整数として定義しています。パスパラメーターの名前は、パスのプレースホルダーと一致する必要があります。

変更前

json
{
  "openapi": "3.0.0",
  "paths": {
    "/user/{id}": {
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "required": true,
          "description": "ID of the API version"
        }
      ]
    }
  }
}

変更後

json
{
  "openapi": "3.0.0",
  "paths": {
    "/user/{id}": {
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "required": true,
          "description": "ID of the API version",
          "schema": {
            "type": "integer"
          }
        }
      ]
    }
  }
}

参考資料