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