ファイルアップロード
OpenAPI 3.0 では、リクエストコンテンツで直接アップロードされたファイルと、multipart
リクエストでアップロードされたファイルを記述できます。ファイルを含むリクエストペイロードを記述するには、requestBody
キーワードを使用します。content
の下で、リクエストメディアタイプ (例: image/png
またはapplication/octet-stream
) を指定します。ファイルは、ファイルコンテンツのエンコード方法に応じて、type: string
スキーマとformat: binary
またはformat: base64
を使用します。例えば
1requestBody:2 content:3 image/png:4 schema:5 type: string6 format: binary
この定義は、次のような HTTP リクエストに対応します。
1POST /upload2Host: example.com3Content-Length: 8084Content-Type: image/png5
6[file content goes there]
マルチパートリクエストによるアップロード
他のデータとともに送信されるファイルを記述するには、multipart
メディアタイプを使用します。例えば
1requestBody:2 content:3 multipart/form-data:4 schema:5 type: object6 properties:7 orderId:8 type: integer9 userId:10 type: integer11 fileName:12 type: string13 format: binary
対応する HTTP リクエストペイロードには複数のパーツが含まれます。
1POST /upload2Host: example.com3Content-Length: 27404Content-Type: multipart/form-data; boundary=abcde123455
6--abcde123457Content-Disposition: form-data; name="orderId"8
9119510--abcde1234511Content-Disposition: form-data; name="userId"12
1354514--abcde1234515Content-Disposition: form-data; name="fileName"; filename="attachment.txt"16Content-Type: text/plain17
18[file content goes there]19--abcde12345--
複数ファイルのアップロード
任意の数のファイル(ファイルの配列)をアップロードする定義には、multipart
メディアタイプを使用します。
1requestBody:2 content:3 multipart/form-data:4 schema:5 type: object6 properties:7 filename:8 type: array9 items:10 type: string11 format: binary
対応するHTTPリクエストは次のようになります。
1POST /upload2Host: example.com3Content-Length: 27404Content-Type: multipart/form-data; boundary=abcde123455
6--abcde123457Content-Disposition: form-data; name="fileName"; filename="file1.txt"8Content-Type: text/plain9
10[file content goes there]11--abcde1234512Content-Disposition: form-data; name="fileName"; filename="file2.png"13Content-Type: image/png14
15[file content goes there]16--abcde1234517Content-Disposition: form-data; name="fileName"; filename="file3.jpg"18Content-Type: image/jpeg19
20[file content goes there]21--abcde12345--
参照
OpenAPI でのファイルアップロードの詳細については、OpenAPI 3.0 仕様の以下のセクションを参照してください。
お探しのものが見つかりませんでしたか? コミュニティに質問する
間違いを見つけましたか? お知らせください