RESTとは
REpresentational State Transferの略で、分散型システムにおける設計ルールのこと。
RESTfulとは
RESTで求められる原則に従っていること。
REST原則
クライアント/サーバ
階層化システム 3層構成(多層アーキテクチャ構成)のWEB→AP→DBのことそのもの。
メリット:各コンポーネントに役割を決めて独立させ進化と再利用が促進できる
デメリット:データ処理にオーバーヘッドが発生。応答が悪くなるコードオンデマンド クライアントコードをダウンロードして実行できる。 リリース後にクライアントコードを変更できる。
メリット:リリース済みのクライアントに対して機能追加可能、クライアントに処理が移譲されサーバの負荷が下がる
デメリット:評価環境が複雑になる統一インターフェース
- リソースの識別:URIを用いてサーバに保存されたデータを識別する
- 表現を用いたリソース操作
- 自己記述メッセージ
- アプリケーション状態エンジンとしてのハイパーメディア
ステートレス
通信のたびに状態(ステート)を保持しない サーバはリクエストだけでコンテキストを理解できる
キャッシュ制御
REST APIの設計レベル
LEVEL3→2に加えてレスポンスにリソース間のつながりがある
LEVEL2→1に加えてHTTPメソッドを活用(一般的に使用される)
LEVEL1→リソースごとにURLが分割
LEVEL0→REST APIの基本レベル
CRUD操作のURIとHTTPメソッド
movieをリソースにして、CRUD操作のURI、HTTPメソッドを定義しました。
URI | HTTP method | リソースごとの操作一覧 |
---|---|---|
/movies | GET | ムービー情報一覧取得 |
/movies | POST | ムービーの新規登録 |
/movies/12345 | GET | 特定ムービーの取得 |
/movies/12345 | PUT | ムービーの更新 |
/movies/12345 | DELETE | ムービーの削除 |