📌

APIの方式をまとめてみた

に公開

APIにはいくつかの方式があります。
代表的なものを整理しました。

REST

最も一般的なAPI設計スタイル。
HTTPの動詞を活用して、GET(取得)、POST(作成)、PUT/PATCH(更新)、DELETE(削除)を使い分けます。
リソースごとにエンドポイントを用意するのが基本です(例: /users/123)。

特徴

  • シンプルで広く普及
  • 設計の自由度が高い(品質は設計者次第)

JSON:API

RESTをベースにした規約(フォーマットの標準化)。
レスポンスやエラーの形を統一できます。

特徴

  • RESTのバラつきを減らせる
  • フロントエンド開発者に優しい
  • Laravelなどでライブラリも存在

SOAP

XMLベースの古いAPI規格。
WSDLという定義ファイルで型や操作を厳密に定義します。

特徴

  • 金融や基幹系システムで今も利用される
  • 機能は強力だが扱いは重い
  • 新規開発ではほぼ選ばれない

gRPC

Googleが開発したRPCフレームワーク。
HTTP/2とProtocol Buffersを利用し、.proto ファイルでインターフェースを定義します。

特徴

  • 高速かつ型安全
  • 双方向ストリーミングに強い
  • マイクロサービス間通信に適している

GraphQL

Facebookが開発したクエリ言語ベースのAPI。
クライアントが「欲しいデータだけ」を指定できます。

特徴

  • Overfetch / Underfetch を解消
  • スキーマが強力で自動ドキュメント化しやすい
  • 実装やキャッシュ戦略は少し難しい

まとめ

  • REST: 最も普及している基本形
  • JSON:API: RESTの標準化版
  • SOAP: レガシーだけど金融・基幹系で現役
  • gRPC: 高速・マイクロサービス向け
  • GraphQL: 柔軟なデータ取得が必要なフロント向け

Discussion