未使用のパラメーターコンポーネント(OpenAPI 3.0)

再利用可能なパラメーターがパスや操作に適用されていない状態

説明

components.parameters に定義するだけでは、パラメーターはリクエストに適用されません。パスや操作の parameters から参照する必要があります。未使用の定義は整理の対象として確認できます。

想定される影響

利用者が、その操作では受け取らないパラメーターも指定できると誤解する可能性があります。

対処方法

必要なパラメーターを使用箇所から $ref で参照してください。名前、場所、必須かどうかをAPIに合わせ、他の文書でも使われていない不要な定義だけを削除してください。

例

次の例では、操作の parameters から limitParam を参照しています。

変更前

json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Simple API Overview",
    "version": "1.0.0"
  },
  "paths": {
    "/": {
      "get": {
        "operationId": "listVersionsv2",
        "summary": "List API versions",
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    }
  },
  "components": {
    "parameters": {
      "limitParam": {
        "name": "limit",
        "in": "query",
        "description": "max records to return",
        "required": true,
        "schema": {
          "type": "integer"
        }
      }
    }
  }
}

変更後

json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Simple API Overview",
    "version": "1.0.0"
  },
  "paths": {
    "/": {
      "get": {
        "operationId": "listVersionsv2",
        "summary": "List API versions",
        "responses": {
          "200": {
            "description": "Success"
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/limitParam"
          }
        ]
      }
    }
  },
  "components": {
    "parameters": {
      "limitParam": {
        "name": "limit",
        "in": "query",
        "description": "max records to return",
        "required": true,
        "schema": {
          "type": "integer"
        }
      }
    }
  }
}

参考資料