ファイルアップロードのconsumes形式が不正(OpenAPI 2.0)

リクエストのメディアタイプがファイルパラメーターと合わない状態

説明

OpenAPI 2.0のファイルパラメーターには、フォーム送信に対応する consumes が必要です。仕様で許可される形式は multipart/form-data と application/x-www-form-urlencoded で、一般的なファイルアップロードには multipart/form-data を使います。

想定される影響

クライアントが誤ったコンテンツタイプでリクエストを構成し、ファイルアップロードに失敗する可能性があります。

対処方法

実際に適用される consumes を、サーバーが受け付けるアップロード形式に合わせてください。操作別の値は全体の値を上書きします。ファイルパラメーターの in は formData にしてください。

例

次の抜粋では、POST によるアップロードの consumes を application/json から multipart/form-data に変更しています。

変更前

json
{
  "paths": {
    "/": {
      "post": {
        "parameters": [
          {
            "name": "File",
            "type": "file",
            "in": "formData"
          }
        ],
        "consumes": [
          "application/json"
        ]
      }
    }
  }
}

変更後

json
{
  "paths": {
    "/": {
      "post": {
        "parameters": [
          {
            "name": "File",
            "type": "file",
            "in": "formData"
          }
        ],
        "consumes": [
          "multipart/form-data"
        ]
      }
    }
  }
}

参考資料