REST APIとは
REST API(Representational State Transfer API)は、Webアプリケーションやサービス間のインタラクションを容易にするためのプログラミングインターフェースです。これは、リソース(データや機能)をWeb上で表現し、HTTPメソッド(GET、POST、PUT、DELETEなど)を使用してアクセスすることができます。
RESTの6つの原則
RESTはHTTPの設計者の1人であるRoy Fieldingが2000年に提唱したAPIの設計の考え方であり、以下の6つ原則があります。
-
クライアント/サーバー構造:システムはクライアントとサーバーに分離されており、それぞれ独立して機能します。これにより、フロントエンドとバックエンドの開発が独立して進められます。
-
ステートレス:それぞれのリクエストは独立しており、過去のリクエストの情報をサーバーが保持する必要はありません。クライアントからの各リクエストには、それを理解し処理するのに必要なすべての情報が含まれています。
-
キャッシュ可能: システムの応答は、パフォーマンス向上のためにキャッシュ可能であるべきです。適切に管理されたキャッシュは、クライアント-サーバー間のやり取りを減らし、効率を高めます。
-
統一インターフェース: シンプルで一貫性のある方法でウェブサービスを利用するためのルールです。この原則に従うことで、異なるシステムやアプリケーションが同じ方法でデータや機能にアクセスしやすくなります。
-
階層化システム: クライアントは通常、エンドポイント以外のネットワークの構造について知らなくても済みます。これにより、システムはより柔軟に構成され、スケールアウトやロードバランシングが容易になります。
-
コードオンデマンド: サーバーは必要に応じて実行可能なコード(JavaScriptなど)をクライアントに送ることができます。
URIとHTTPメソッド
REST APIでは、リソース(例えばデータベース内のレコードや特定のサービス機能)はURI(Uniform Resource Identifier)を通じて識別されます。そして、HTTPメソッド(GET、POST、PUT、DELETEなど)を使用して、それらのリソースに対して操作を行います。以下は各HTTPメソッドの対応表となります。
HTTPメソッド | 概要 |
---|---|
GET | リソースの読み取りや取得に使用 |
POST | 新しいリソースを作成するために使用 |
PUT | 既存のリソースを更新するために使用 |
DELETE | リソースを削除するために使用 |
REST APIの実装例
例として、「movie」というリソースを対象にしたREST APIを考えます。このAPIでは、映画に関する情報の作成、読み取り、更新、削除(CRUD操作)が可能です。これらの操作は次のようなURIとHTTPメソッドを使用して定義されます。
URI | HTTPメソッド | 概要 |
---|---|---|
/movies | POST | 映画を作成 |
/movies | GET | 映画のリストを取得 |
/movies/{movie_id} | GET | 特定の映画を取得 |
/movies/{movie_id} | PUT | 特定の映画を更新 |
/movies/{movie_id} | DELETE | 特定の映画を削除 |
ここでは、{movieId}は特定の映画を識別するためのユニークなIDを表します。URIはリソースを指し示し、HTTPメソッドはそのリソースに対してどのような操作を行うかを示します。例えば、POST /moviesは新しい映画を作成し、GET /movies/{movieId}はIDに基づいて特定の映画の詳細を取得します。