REST APIとOpenAPIの関係は、
1. REST APIはWebサービスの設計思想、OpenAPIはその記述仕様
2. OpenAPIはREST APIを記述するための言語
3. OpenAPIを使うと、REST APIを簡単に設計・共有・利用できる
詳細:
REST API:
- Webサービスを構築するための設計思想
- HTTPメソッド(GET、POST、PUT、DELETEなど)とURIを使ってリソースの操作を定義
- 軽量で柔軟、多くのWebサービスで採用
OpenAPI:
- REST APIを記述するための言語(JSONまたはYAML)
- エンドポイント、パラメータ、レスポンスなど、APIのインターフェースを詳細に記述
- 人間と機械が読みやすいフォーマット
- ツールを使って、APIドキュメントの自動生成、テスト、クライアントライブラリの生成などを行える
関係性:
- OpenAPIはREST APIを記述するための言語
- OpenAPIを使うと、REST APIを簡単に設計・共有・利用できる
例:
- あるWebサービスで、ユーザー情報を取得するREST APIがあるとします。
- このAPIをOpenAPIで記述すると、以下のようになります。
openapi: 3.0.0
info:
title: ユーザー情報取得API
version: 1.0.0
paths:
/users:
get:
summary: ユーザー情報を取得
responses:
200:
description: 成功
content:
application/json:
schema:
type: object
properties:
id:
type: integer
description: ユーザーID
name:
type: string
description: ユーザー名
- この記述から、APIの以下の情報がわかります。
- エンドポイント:
/users
- メソッド:
GET
- リクエストパラメータ: なし
- レスポンスコード:
200
- レスポンスボディ: ユーザー情報(JSON形式)
- エンドポイント:
メリット:
- 設計: API設計書の作成が容易になる
- 共有: APIの仕様を簡単に共有できる
- 利用: ツールを使って、APIドキュメントの自動生成、テスト、クライアントライブラリの生成などを行える
ツール:
- Swagger Editor: https://editor.swagger.io/
- Postman: https://www.postman.com/
- API Gateway: https://cloud.google.com/api-gateway/
まとめ:
- OpenAPIはREST APIを設計・共有・利用するための強力なツール
- API開発を効率化したい場合は、OpenAPIの使用を検討する
参考:
- OpenAPI Initiative: https://swagger.io/
- REST API と OpenAPI の概要: https://cloud.google.com/blog/products/api-management/understanding-grpc-openapi-and-rest-and-when-to-use-them