REST APIとは
API(アプリケーション プログラム インターフェース)は、アプリケーションとデバイスの接続と通信の方法を定義する一連のルールです。
REST APIとは、REST(Representational State Transfer)の原則に基づいて設計されたAPIの事です。Webシステムを外部から利用するためのAPIです。
RESTの設計原則
1.統一されたインターフェース
ユーザーの名前やEメールアドレスなど、同じデータが1つのURI(Uniform Resource Identifier)だけに属するようにします。クライアントが必要とする可能性のあるすべての情報が含まれている必要があります。
2.クライアントとサーバーの分離
クライアント側とサーバー側は、互いに分離され独立している必要があります。クライアントはリソースを表すURIのみを知ってればよく、他の方法でサーバー側は、クライアントリクエストに関連するデータの保存を許可されてません。
3.ステートレス
REST APIはステートレスなので、各リクエストが個別で完結しており、前のリクエストとの状態を引き継ぎません。そのため、その処理に必要なすべての情報を含める必要があります。
4.キャッシュ可能
キャッシュが許可されている場合は、クライアント側またはサーバー側でリソースのキャッシュが可能である必要があります。サーバーの応答には、そのリソースがキャッシュ可能かどうかの情報が含まれてなければならない。
5.階層化システム
REST APIでは、クライアントとサーバーの間に中間システムが存在する可能性があります。そのため、クライアントとサーバーは直接通信していると想定せず、中間システムの有無に関わらず通信できるように設計する必要があります。
6.コードオンデマンド(オプション)
REST APIは通常、静的なリソース(HTML、画像、データ)を送信します。
しかし、場合によっては応答に実行可能なコードを含めることができます。その際、実行可能コードはオンデマンド(必要に応じて)で実行される必要があります。
REST APIで使われるHTTPメソッド
HTTPメソッド | 概要 |
---|---|
GET | リソースの読み取りや取得に使用 |
POST | 新しいリソースを作成するために使用 |
PUT | 既存のリソースを更新するために使用 |
DELETE | リソースを削除するために使用 |
movieをリソースとしたCRUD操作のURIとHTTPメソッドは、次のように定義できます。
URI | HTTPメソッド | 概要 |
---|---|---|
/movies | POST | 映画を作成 |
/movies | GET | 映画のリストを取得 |
/movies/{movie_id} | GET | 特定の映画を取得 |
/movies/{movie_id} | PUT | 特定の映画を更新 |
/movies/{movie_id} | DELETE | 特定の映画を削除 |