リソースを操作するAPI
RESTフルAPIは、インターネット上の標準的な通信を可能にするためにRepresentational State Transfer(REST)のアーキテクチャ制約に従うWeb APIの一種です。
定義
RESTフルAPI(Representational State Transfer API)は、ウェブの規則に従って2つのコンピュータシステムが情報を交換するインターフェースであり、一般的にはHTTPを使用します。これは、URLによるリソースの識別や、GET、POST、PUT、DELETEなどの標準HTTPメソッドを使用してリソースに対して操作を行うRESTの原則に準拠しています。RESTフルAPIはサーバーでクライアントセッションの状態を保持しないため、クライアントサーバー間のやり取りがスケーラビリティとシンプルさを向上させます。応答はJSONやXMLなどの軽量で移動可能な形式で提供されることが多く、ウェブやクラウドサービスで広く採用されています。RESTフルAPIは多くの現代的な分散システム、マイクロサービス、および統合の基盤となっています。
利点
- 無接続設計により、サーバーのメモリ使用量が削減され、スケーラビリティが非常に高い。
- プラットフォームや言語に依存せず、広範な相互運用性を実現できる。
- 標準HTTPメソッドを使用するため、実装やツールの整備が簡単である。
- 柔軟なデータ形式(例: JSON)で、マシンや開発者にとってパースが容易である。
- ウェブ、クラウド、モバイルエコシステム全体で広くサポートされている。
欠点
- 極めて厳格なREST準拠(例: HATEOAS)は、しばしば誤解されたり、完全に実装されない。
- 無接続性により、各リクエストで繰り返し認証やコンテキストの指定が必要となることがある。
- 実時間の双方向通信(例: WebSockets)には適していない。
- 簡単な内部サービスにおいてはHTTPメソッドやヘッダーのオーバーヘッドが不要である場合がある。
- RESTフルの原則に従わず、単なるHTTP APIとして誤って使用されることがある。
使用例
- フロントエンドのウェブやモバイルアプリをバックエンドサービスに接続する。
- 支払いゲートウェイやソーシャルメディアAPIなどのサードパーティサービスを統合する。
- 離れたコンポーネントを持つマイクロサービスアーキテクチャを構築する。
- ユーザープロフィールや製品カタログなどのリソースを取得・変更する。
- クラウドワークフローを自動化し、システム間でのデータ交換を行う。