説明
OpenAPI 2.0のconsumesは、リクエスト本文のメディアタイプを表します。本文を受け付けるPOST、PUT、PATCH操作で、全体にも操作にも定義がない場合、クライアントは送信形式を判断しにくくなります。
想定される影響
クライアントが誤ったContent-Typeを使用し、リクエストが拒否されたり本文の処理に失敗したりする可能性があります。
対処方法
サーバーが実際に受け付けるメディアタイプを、全体または操作のconsumesに指定します。操作の値は全体の値を上書きします。JSON本文にはapplication/jsonを使用し、フォームデータはformDataパラメーターで定義してください。
例
この抜粋では、JSONオブジェクトを本文として受け付ける操作にapplication/jsonを指定しています。
変更前
yaml
swagger: "2.0"
paths:
/users/{id}:
put:
parameters:
- in: body
name: body
schema:
type: object
responses:
"200":
description: ok
変更後
yaml
swagger: "2.0"
paths:
/users/{id}:
put:
consumes:
- application/json
parameters:
- in: body
name: body
schema:
type: object
responses:
"200":
description: ok