説明
パラメーターの位置にある $ref は、パラメーターオブジェクトを参照する必要があります。スキーマなどの別の種類のオブジェクトでは、名前や場所など、必要なパラメーター情報を満たせません。
想定される影響
仕様の検証やクライアント生成に失敗したり、リクエストパラメーターが誤って表現されたりする可能性があります。
対処方法
共通パラメーターは #/parameters/... の正しい定義を参照してください。外部ファイルのパラメーターも参照できます。参照先が有効なパラメーターオブジェクトであることを確認してください。
例
次の POST の例では、パラメーターの位置にある User スキーマへの参照を limitParam への参照に置き換えています。
変更前
json
{
"swagger": "2.0",
"info": {
"title": "Simple API Overview",
"version": "1.0.0"
},
"paths": {
"/": {
"post": {
"operationId": "listVersionsv2",
"summary": "List API versions",
"responses": {
"200": {
"description": "A user",
"schema": {
"$ref": "#/definitions/User"
}
}
},
"parameters": [
{
"$ref": "#/definitions/User"
}
]
}
}
},
"parameters": {
"limitParam": {
"name": "limit",
"in": "body",
"description": "max records to return",
"required": true,
"schema": {
"type": "integer"
}
}
},
"definitions": {
"User": {
"type": "object",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
}
}
}
}
}
変更後
json
{
"swagger": "2.0",
"info": {
"title": "Simple API Overview",
"version": "1.0.0"
},
"paths": {
"/": {
"post": {
"operationId": "listVersionsv2",
"summary": "List API versions",
"responses": {
"200": {
"description": "A user",
"schema": {
"$ref": "#/definitions/User"
}
}
},
"parameters": [
{
"$ref": "#/parameters/limitParam"
}
]
}
}
},
"parameters": {
"limitParam": {
"name": "limit",
"in": "body",
"description": "max records to return",
"required": true,
"schema": {
"type": "integer"
}
}
},
"definitions": {
"User": {
"type": "object",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
}
}
}
}
}