【スワガー】

Swagger とは?

最終更新:
💡 APIの共通の設計図を、編集・表示・コード生成に使う

OpenAPI定義を使ってAPIの設計・文書化・コード生成などを行うツール群。Swagger Editorは定義の編集、Swagger UIは文書の表示やリクエスト送信、Codegenはコード生成を担う。

📌 このページのポイント
OpenAPI定義を、複数の道具で使う Swagger Editor 定義を編集 OpenAPI定義 API YAML / JSON 作成 Swagger UI 文書を表示 リクエスト送信も Codegen SDK コードのひな型 読み込む APIへの送信には、接続・認証等の条件がある
Editorで作った定義をUIが表示し、Codegenがコード生成に利用する例。UIとCodegenは順番に実行する必須手順ではない。
ひよこ ひよこ
Swaggerは、APIの仕様書を勝手に作ってくれるの?
ペンギン先生 ペンギン先生
OpenAPI定義を扱うツール群だよ。Swagger Editorで定義を先に書く方法も、コードから定義を作る連携ツールを使う方法もある。Swagger UIは、その定義を読み込んでブラウザで見られる文書にするんだ。
ひよこ ひよこ
画面からAPIを試せるって本当?
ペンギン先生 ペンギン先生
Swagger UIでは「Try it out」から実際のAPIへリクエストを送れるよ。ただし機能の設定、接続先の稼働、認証やブラウザの通信制限などの条件がある。定義ファイルだけでAPIの処理そのものが動くわけではないんだ。
ひよこ ひよこ
SwaggerとOpenAPIは、同じものなの?
ペンギン先生 ペンギン先生
元のSwagger仕様が2015年に寄贈され、OpenAPI Specificationへ改名されたよ。今はOpenAPIがAPIを記述する仕様、Swaggerが定義を扱うツール群という関係。Swaggerにはオープンソースのツールと商用の製品があるんだ。
ひよこ ひよこ
Swagger UIは、どう導入するの?
ペンギン先生 ペンギン先生
UIを用意して、読み込むOpenAPI定義のURLや定義オブジェクトなどを設定するよ。フレームワークと連携する方法もあるけれど、公開URLや設定は使う製品と版によって違う。定義と実装が合っていることも確認するんだ。
ひよこ ひよこ
Swagger Codegenなら、APIの開発が全部終わる?
ペンギン先生 ペンギン先生
生成できるのはクライアントSDKやサーバーのひな型などだよ。実際の業務処理や運用の設定、動作確認は別に必要。対応する定義の版や言語もツールによって違うので、生成したコードをそのまま完成品とは考えないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Swagger」って出てきたら「OpenAPIの設計図を編集・表示・コード生成に使うツール群」と思えばだいたいOK!
📖 おまけ:英語の意味
「Swagger」 = スワガー(API開発ツール群の名前)
💬 もともと仕様とツール群の名前だったよ。2015年に仕様がLinux Foundationへ寄贈され、OpenAPI Specificationへ改名された。今は仕様とツールの役割を区別して考えるんだ。

参考資料

← 用語集にもどる