REST
本日はWebアプリケーション開発にあたって必要な知識のひとつであるRESTについて学習します!
目次
1.RESTとは
REST(REpresentational State Transfer)とは、Webサービスの設計モデルです。
RESTはリソース(ブログ記事や写真などのコンテンツ)を扱うための考え方であり、RESTなWebサービスは、そのサービスのURIにHTTPメソッドでアクセスすることでデータの送受信を行います。
URIとは、Uniform Resource Identifier
の略で、名前または場所を識別する書き方のルールの総称をいいます。今はとりあえずURL(Uniform Resource Locator)の親カテゴリだというイメージで良さそうです!👶
2.RESTful
2-1. RESTの設計原則
RESTは設計に際し、以下の項目を設計原則とするように提言されています。
また、これらの原則に則ったWebサービスのことをRESTfulなサービスといいます。
- アドレス可能性(Addressability)
- ステートレス性(Stateless)
- 接続性(Connectability)
- 統一インターフェース(Uniform Interface)
2-2. アドレス可能性(Addressability)
ひとつめの原則は、アドレス指定可能な URI で公開されていることです。
提供する全ての情報は URI で表現される一意なアドレスを持ちます😎
例えばウェザーニュースの東京都の天気予報は、以下のURLからアクセスできます。
https://weathernews.jp/s/forecast/?area=TOKYO
URLをよく見ると、トップページからディレクトリ構成のような形で、東京都の天気予報を示していることがわかります。
2-3. ステートレス性(Stateless)
ステートレスであることというのは、セッション等の状態管理をしないで、やりとりされる情報はそれ自体で完結して解釈できることです。
リクエストに処理に必要な情報を全て含み、自己完結することです。
反対語はステートフルです。
ステートフルな会話の例(回答者が前回までの流れを記憶してる)
質問者 天気はどうですか。
回答者 いつの天気ですか。
質問者 明日です。
回答者 どこの天気ですか。
質問者 東京です。
回答者 晴れです。
ステートレスな会話の例(回答者は記憶しないため毎回完結する)
質問者 天気はどうですか。
回答者 いつの天気ですか。
質問者 明日の天気です。
回答者 どこの天気ですか。
質問者 明日の東京の天気です。
回答者 晴れです。
2-4. 接続性(Connectability)
接続性とは、情報の内部に別の情報やその情報へのリンクを含めることができることです🚗
サーバは、ハイパーメディア(ハイパーテキスト表現内のリンクとフォーム)を提供することにより、クライアントのパスを導きます。
2-5. 統一インターフェース(Uniform Interface)
これは、インターフェース(HTTPメソッドの利用)の統一がされていることです。
情報の操作は全てHTTPメソッド(GET、POST、PUT、DELETE)を利用することです😊
RESTの概要についてはこんなところです!