本文へスキップ
← 記事一覧に戻る

OpenAPI Specification(OAS)

OpenAPI Specification(OAS)とは

OpenAPI Specification(OAS)は、RESTful APIのインターフェース(仕様)を記述するための標準的なフォーマットです。 一言で言うと、「このAPIにはどんな機能があって、どう呼び出せばどんな結果が返ってくるのか」を、人間にもコンピューターにも読みやすい形式(YAMLやJSON)で定義したものです。

なぜ重要なのか?

従来、APIの仕様書はExcelやWikiなどで作成されていましたが、これには「実装と仕様書がズレる」「手作業での更新が大変」という課題がありました。OpenAPIを採用することで、以下のことが自動化・標準化されます。

  • ドキュメントの自動生成: 定義ファイルから、ブラウザで確認・テストができるリッチなドキュメント(Swagger UIなど)を自動作成できます。

  • コードの自動生成: クライアント側のライブラリやサーバー側のスタブコードを自動生成でき、開発効率が劇的に向上します。

  • モックサーバーの構築: 実装を待たずに、フロントエンド開発者がテストに使える偽のAPI(モック)を即座に用意できます。

具体的に何を書くのか?

主に以下の情報を記述します。

項目 内容
Basic Info APIの名前、バージョン、説明など
Paths エンドポイント(/usersなど)と、利用可能なメソッド(GET, POSTなど)
Parameters パスパラメータ、クエリパラメータ、ヘッダーの情報
Responses ステータスコード(200, 404など)と、返却されるデータの構造
Components 共通で利用するデータモデル(Userオブジェクトなど)の定義

記述例(YAML形式)

openapi: 3.0.0
info:
  title: サンプルAPI
  version: 1.0.0
paths:
  /users/{userId}:
    get:
      summary: ユーザー情報を取得する
      parameters:
        - name: userId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: 成功時のレスポンス
          content:
            application/json:
              schema:
                type: object
                properties:
                  id: { type: string }
                  name: { type: string }

OpenAPIとSwaggerの違い

よく混同されますが、現在は以下のように使い分けられています。

  • OpenAPI: 仕様(規格)そのものの名称。

  • Swagger: OpenAPIを扱うためのツール群(Swagger Editor, Swagger UI, Swagger Codegenなど)のブランド名。

元々は「Swagger仕様」と呼ばれていましたが、標準化団体に寄贈された際に「OpenAPI Specification」と改名されました。 現在、多くの開発現場では v3.0 または v3.1 が主流として使われています。

OpenAPIとSwaggerについて

「OpenAPI」と「Swagger」は非常に混同されやすい言葉ですが、結論から言うと 「ルール(仕様)」と「道具(ツール)」の関係 です。 以前はどちらも「Swagger」と呼ばれていましたが、現在は明確に区別されています。

OpenAPIとSwaggerの違い

一言で表すと以下のようになります。

  • OpenAPI (Specification): APIの設計図を書くための 「ルール・規格」 です。YAMLやJSON形式で「どう書くべきか」を定めた標準仕様を指します。

  • Swagger (Tools): OpenAPIというルールに基づいて、APIを設計・ビルド・ドキュメント化するための 「ツールのセット」 です。SmartBear社によって開発されています。

ヒント

歴史的背景: 元々はSmartBear社が「Swagger」という名前で仕様とツールの両方を開発していました。その後、仕様の部分だけが標準化団体(OpenAPI Initiative)に寄贈され、「OpenAPI Specification (OAS)」と改名されました。

代表的なSwaggerツール

OpenAPI形式で書かれた定義ファイル(openapi.yamlなど)を読み込んで、以下のような便利な機能を提供します。

ツール名 役割
Swagger UI 定義ファイルから、ブラウザで確認できるインタラクティブな説明書を生成します。ボタンを押すだけで実際にAPIリクエストを試せます。
Swagger Editor ブラウザ上でOpenAPIの定義を記述・編集するためのエディタです。リアルタイムでプレビューが確認できます。
Swagger Codegen 定義ファイルから、各言語(Java, Python, TypeScriptなど)のクライアントコードやサーバーの雛形を自動生成します。
np

どちらの言葉を使えばいい?

  • APIの仕様書をOpenAPI形式で書く」:正しい(規格を指しているため)

  • 「Swagger UIでAPIの動作確認をする」:正しい(具体的なツールを指しているため)

  • 「このプロジェクトはSwaggerを使っている」:一般的(ツール群を総称して使われることが多い)

現代の開発現場では、 「OpenAPIという標準ルールに従って、Swaggerというツールを使って効率化する」 というのが一般的なスタンスです。