Description
A shared parameter referenced through #/parameters/... must exist in parameters. A misspelled name or deleted definition prevents the required request parameter from being loaded.
Potential impact
Documentation generation or validation may fail, or required parameter information may be omitted.
Remediation
Match the reference name to its definition. Restore needed definitions and remove only references that are no longer required. Update all uses when renaming a parameter.
Examples
These excerpts remove the unnecessary maxParam reference while retaining the existing limitParam definition.
Before
json
{
"paths": {
"/": {
"get": {
"parameters": [
{
"$ref": "#/parameters/maxParam"
},
{
"$ref": "#/parameters/limitParam"
}
]
}
}
},
"parameters": {
"limitParam": {
"name": "limit",
"in": "query",
"required": true,
"type": "integer"
}
}
}
After
json
{
"paths": {
"/": {
"get": {
"parameters": [
{
"$ref": "#/parameters/limitParam"
}
]
}
}
},
"parameters": {
"limitParam": {
"name": "limit",
"in": "query",
"required": true,
"type": "integer"
}
}
}