web のアーキテクチャスタイル である REST について解説します。
そもそもアーキテクチャスタイルとは?
複数のアーキテクチャに共通する性質や様式、作法、流儀を指します(≒アーキテクチャパターンとほぼ同義)。
似たような言葉として「デザインパターン」≒「マイクロアーキテクチャパターン」と呼ばれるものもありますが、アーキテクチャスタイルよりも小さな粒度を指します。
その特性から実装詳細を指すわけではないので、本に具体的な実装方法まで載っていることが少なく、システム開発者は抽象化されたアーキテクチャスタイルを適用した実装をする必要があります。
関連するアーキテクチャスタイルとアーキテクチャパターン
- MVC
- Pipe and Filter
- Event System
RESTの特徴
RESTはクライアント/サーバーアーキテクチャスタイルの派生であり、以下の特徴を持ちます。
-
クライアント/サーバー
- ユーザーインターフェース処理を分離します。
- フロントエンド以外の部分をデータだけで構築でき、サーバーの冗長化が容易です。
-
ステートレスサーバー
- サーバー側でアプリケーションの状態を保持しません。
- 前回通信した「相手」を覚える必要がなく、簡単に実装できます。
-
キャッシュ
- クライアントとサーバーの通信回数および通信量を減少させます。
- 通信量の軽減が可能です。
-
統一インターフェース
- インターフェースを固定します(GET POST などの 8つのメソッドのみが使用可能です)。
- 設計をシンプルに保ちます。
-
階層化システム
- 階層に分離し、クライアントとサーバー以外の役割を挿入しやすくします。
- クライアントとサーバーの構成の間にプロキシサーバーを挟んだり、サーバーの奥に HTTP 通信以外のコンテンツを配置する、などの変更が容易です。
- 階層に分離し、クライアントとサーバー以外の役割を挿入しやすくします。
-
コードオンデマンド
- 必要に応じてコードをダウンロードして実行します。
- クライアント側にソースコードやライブラリをインストールする必要がなく、ブラウザ等で指定されたHTMLやJavaScriptコードを実行するだけで済みます。
HTTPというプロトコル (通信の規格)
Web通信のデファクトプロトコルであり、コンピュータで扱えるものであれば何でも転送可能です。
Webの設計思想であるRESTとアーキテクチャスタイルを遵守しています。