4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

OpenAPI(Swagger3.0) ファイル送信APIを記述する

Posted at

本記事で扱うこと

  • ファイル送信API(POST)の記述方法(YAML形式)および関連するオブジェクトの説明

本記事の構成

  1. ファイル送信APIの記述例
  2. 記述例を参照しながら、記述の解説
  3. openapi.yaml全体の記述例

1. ファイル送信APIの記述例

# ~~省略
requestBody:
  content:
    multipart/form-data:
      schema:
        type: object
        properties:
          filename:
            type: string
          file:
            type: string
            format: binary
# 省略~~

2. 記述例を参照しながら、記述の解説

ファイル送信APIにとって、肝となる部分はcontenttypeです。

まずPOST通信なので、parametersではなくrequestBodyを使用します。

次にcontentについて、通常であればapplication/jsonを定義することが多いと思いますが、ファイル送信APIではmultipart/form-dataを定義します。
このことにより、Swagger Viewerで確認するときにも、動作の確認を行いやすくなります。

最後にfileプロパティのtypeとformatがstringとbinaryになっています。
これはSwagger3.0に(2.0もそうなのですが)fileタイプが用意されていないため、このような記述になっています。
このことは、公式ドキュメントのこちらに記載されています

3. openapi.yaml全体の記述例

openapi: "3.0.2"
info:
  version: 1.0.0
  title: Qiita Demo File Upload API
  license:
    name: MIT
servers:
  - url: http://api-qiitayou.com/
paths:
  "/fileUpload":
    post:
      tags:
        - "File Upload API"
      summary: ファイルのアップロードを行います
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                filename:
                  type: string
                file:
                  type: string
                  format: binary
      responses:
        200:
          description: レスポンスは省略します
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?