まとめ
RESTfulなAPIは、Representational State Transfer(表現状態転送)アーキテクチャを基盤として設計されたAPIのことです。RESTは、分散システムにおけるネットワーク上でのリソースの表現と状態の転送を促進するための原則や制約のセットを指します。
下記の6原則に従うことで、RESTfulなAPIはシンプルで柔軟な設計となり、スケーラビリティやインタープロシャル通信の促進などの利点を提供します。
目次
- Separation of Concerns (クライントとサーバーの分離)
- Statelessness (状態不要)
- Uniform Interface (統一インターフェース)
- Cacheability (キャッシュ可能性)
- Layered System (階層システム)
- Code-On-Demand (オンデマンドのコード)
Separation of Concerns (クライントとサーバーの分離)
RESTではクライアントとサーバーが互いに独立し、完全に分離していることが求められます。
Statelessness (状態不要)
クライアントとサーバー間の通信は状態を保持しないことが原則です。それぞれのリクエストは、必要な情報を含む完全な状態で行われ、サーバーはそれを処理して適切なレスポンスを返します。
Uniform Interface (統一インターフェース)
RESTfulなAPIは、HTTPメソッド(GET、POST、PUT、DELETEなど)を使用してリソースに対する操作を定義します。これにより、APIの操作が一貫していて予測可能になります。
Cacheability (キャッシュ可能性)
サーバーは、レスポンスに対してキャッシュを利用するためのメカニズムを提供する(提供する情報がURIを通して表現できる)ことが推奨されます。これにより、効率的なネットワーク利用やレスポンスの高速化が可能になります。
Layered System (階層システム)
RESTfulなアーキテクチャは、クライアントとサーバーの間に中間層を持つことができます。これにより、システムがより拡張可能になり、柔軟性が向上します。
Code-On-Demand (オンデマンドのコード)
サーバーは、クライアントが実行するためのコード(スクリプトなど)を提供することができます。この機能はオプションであり、必須ではありませんが、RESTfulなアーキテクチャの柔軟性を向上させる一つの手段です。