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 の以下を定義します:

  1. エンドポイント(Endpoints)
  2. オペレーション(Operations)
  3. パラメータ(Parameters)
  4. リクエスト/レスポンス形式
  5. 認証方法

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 の使い方

基本的な使用手順

  1. API 仕様を定義する:Swagger Editor を使用して OpenAPI 仕様ファイルを作成します
  2. ドキュメントを生成する:Swagger UI を使用して API ドキュメントを表示します
  3. コードを生成する:Swagger Codegen を使用してサーバースタブまたはクライアント SDK を生成します
  4. API をテストする:Swagger UI を通じて API テストを行います

サンプルコード

以下は、簡単な OpenAPI 仕様の例(YAML 形式)です:

実例

openapi: 3.0.0
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
その他の拡張