説明
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"
}
}
}
}
}