1
1

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.

Swagger使ってみた

Last updated at Posted at 2023-10-28

Swaggerとは

REST API を設計・開発するために使用するツールスイートです。
※スイートとは、「一式」や「ひとそろい」などという意味です。ツールスイートとは、「ツール一式」や「ツールがまとまったもの」という意味です。

以下のようなエディターにより、REST API を記述することができます。

image.png

画像引用元:

画面左側で API の仕様を記述します。記述するとリアルタイムで画面右側の UI が更新されます。この UI を Swagger UI と呼びます。

image.png

画像引用元:

このような API の記述方法を定めている仕様のことを Swagger 仕様と呼びます。ただし、2015年に Swagger は OpenAPI に寄贈され、現在では Open API 仕様(OpenAPI Specification)と呼びます。OpenAPI 仕様はその頭文字から OAS とも呼ばれます。

image.png

画像引用元:

OpenAPI は、REST API のオープンソースプロジェクトであり、OpenAPI Initiative によって管理されています。OpenAPI Initiative は Linux Foundation に所属する団体です。MicrosoftやGoogle、IBMなどが支援しています。

image.png
image.png

画像引用元:

image.png

画像引用元:

厳密には OAS の YAML 形式(JSON形式もサポート)のドキュメントのことを OpenAPI Description (OAD)と呼びます。OAD は OAS に基づいて記述されます。

image.png

画像引用元:

Swagger UI の使い方

Swagger UI では作成した OAD を検証することができます。ここでいう検証とは、OAD 内の GETPOST を試しに実行してみるという意味です。

このような検証ツールとして POSTMAN が有名です。

Swagger UI ではローカルホストに立てたサーバにリクエストを送信することができます。より詳細には、Swagger UI のエクスポート機能により、サーバを立てるためのソースコードをダウンロードし、ローカルで実行するという形です。このソースコードのプログラミング言語は以下のように選択することができます。ここでは Python を選択しました。

image.png

ダウンロード後、README に記載されているコマンドを実行し、ローカルホストにサーバを立てます。

pip3 install -r requirements.txt // 必要なパッケージをインストールする
python3 -m swagger_server // ローカルホストにサーバを立てる

実行するコマンドは以下の Usage に記載されています。

image.png

ローカルホストにアクセスすると、記述した OAD から生成された Swagger UI が表示されます。

image.png

Python の場合、以下のファイルを編集することでサーバのレスポンスを変更することができます。

[ダウンロードしたフォルダ名]/swagger_server/controllers/default_controller.py

image.png

このようにモックサーバでリクエストやレスポンスを検証しつつ、API の基となる OAD を編集することができます。Pythonでは、以下のファイルが OAD です。

[ダウンロードしたフォルダ名]/swagger_server/swagger/swagger.yaml

ソースコードや OAD を編集したら、ブラウザの更新だけでは編集内容が反映されないため、一度サーバを立て直す必要があることに注意します。すなわち、実行中のプログラムを停止(Ctrl + C など)し、再度プログラムを実行します。

$ python -m swagger_server

OAD の書き方

ここでは説明しませんが、公式ドキュメントのリンクを貼ります。

  • 入門向けのドキュメント

  • すべての仕様を網羅するドキュメント

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?