Swagger 入門
Swagger は、API 開発、ドキュメント生成、および対話型テストのためのオープンソースツールセットです。
Swagger はもともと、Wordnik の共同創業者である Tony Tam によって2011年に作成されました。シンプルな JSON または YAML 形式で API 構造を記述することで、API の設計、実装、テストをより効率的かつ直感的にします。Swagger はその後 OpenAPI Specification へと発展し、業界で広く受け入れられた標準となりました。
Swagger の主な構成要素は次のとおりです:
- Swagger UI:Swagger UI は、OpenAPI 仕様をインタラクティブな API ドキュメントとして表示する視覚化ツールです。ユーザーはブラウザ上で直接 API を表示してテストできます。
- Swagger Editor:Swagger Editor は、OpenAPI 仕様を記述するためのブラウザベースのエディターです。リアルタイムプレビューと検証機能を提供します。
- Swagger Codegen:Swagger Codegen は、OpenAPI 仕様に基づいてサーバースタブとクライアント SDK を生成でき、40以上の言語をサポートしています。
- Swagger Hub:Swagger Hub は、API 設計とドキュメントのための統合プラットフォームであり、コラボレーション機能とクラウドストレージを提供します。

Swagger の発展の歴史
- 2011年:Tony Tam は Wordnik 製品の開発中に、Swagger の原型を設計しました。
- 2011年9月:Swagger プロジェクトが正式にオープンソース化され、Node.js と Ruby on Rails をサポートしました。
- 2013年:API Blueprint と RAML が登場したにもかかわらず、Swagger はより速く成長しました。
- 2015年:OpenAPI Initiative を発起し、OpenAPI Initiative、Google、IBM、Microsoft などの支持を得ました。
- 2016年:Swagger 仕様は OpenAPI Specification に名称変更されました。OpenAPI Specification。
- 2017年:Swagger ツールの1日あたりのダウンロード数は10万回を超え、API開発の重要なツールとなりました。
Swagger の主要概念
OpenAPI 仕様
Swagger の中核は OpenAPI 仕様(以前は Swagger 仕様と呼ばれていました)であり、これは RESTful API を記述するための言語に依存しない標準です。YAML または JSON 形式で API の以下を定義します:
- エンドポイント(Endpoints)
- オペレーション(Operations)
- パラメータ(Parameters)
- リクエスト/レスポンス形式
- 認証方法
API ドキュメント
Swagger はコードからインタラクティブな API ドキュメントを自動生成します。これらのドキュメントにより開発者は以下を行うことができます:
- 利用可能なすべての API エンドポイントを表示する
- API 呼び出しをテストする
- リクエストとレスポンスの例を表示する
- 必要なパラメータとヘッダー情報を理解する
なぜ Swagger を選ぶのか?
- 標準化:Swagger は OpenAPI の前身であり、現在最も主流の API 記述標準です。
- 自動化:API ドキュメント、SDK、サーバーサイドコードの自動生成をサポートし、重複した作業を削減します。
- インタラクティブ性が高い:Swagger UI は WYSIWYG(見たまま)のインタラクティブなインターフェースを提供し、デバッグの難易度を下げます。
- コミュニティとサポートが充実:Google、IBM、Microsoft などの大手企業が Swagger をサポートしており、コミュニティは活発で、プラグインも豊富です。
Swagger の強み
1. 開発効率の向上
Swagger は API ドキュメントとクライアントコードを自動生成することで、手動でドキュメントを作成する時間を大幅に削減し、開発者がビジネスロジックの実装により集中できるようにします。
2. チームワークの改善
明確な API ドキュメントにより、フロントエンドとバックエンドの開発者はよりうまく連携し、コミュニケーションコストを削減できます。
3. API テストの簡素化
組み込みのインタラクティブなインターフェースにより、開発者とテスターは追加のテストツールなしでブラウザ上で直接 API をテストできます。
4. 多言語のサポート
Swagger は、Java、Python、Node.js、.NET など、ほとんどすべての主要なプログラミング言語をサポートしています。
Swagger の使い方
基本的な使用手順
- API 仕様を定義する:Swagger Editor を使用して OpenAPI 仕様ファイルを作成します
- ドキュメントを生成する:Swagger UI を使用して API ドキュメントを表示します
- コードを生成する:Swagger Codegen を使用してサーバースタブまたはクライアント SDK を生成します
- API をテストする:Swagger UI を通じて API テストを行います
サンプルコード
以下は、簡単な OpenAPI 仕様の例(YAML 形式)です:
実例
info:
title: Sample API
description: API description
version: 1.0.0
servers:
- url: https://api.example.com/v1
paths:
/users:
get:
summary: Returns a list of users
responses:
'200':
description: A JSON array of user names
content:
application/json:
schema:
type: array
items:
type: string