REST
「Representational State Transfer」の略です。
RESTは、Web上でリソースを転送するために定められた一連の標準です。REST方式は、API(「REST API」)に広く利用されています。REST APIを使うと、開発者はインターネット経由でリモートシステムのデータにアクセスできます。
RESTでは、次の6つのアーキテクチャ上の制約を定めています。
- クライアント・サーバーモデル – サーバーがクライアントからのリクエストを処理し、クライアントはサーバー上の必要なデータだけにアクセスできます
- ステートレス – リクエストは一時的なもので、クライアントのデータはサーバーに保存されません
- キャッシュ可能 – パフォーマンスを向上させるため、リクエストをキャッシュできます
- 統一されたインターフェース – データへのアクセス方法は、すべてのユーザーとシステムで一貫していなければなりません
- 階層化システムのサポート – リクエストを階層的に処理し、複数のシステムを経由してルーティングできます
- オンデマンドコード(オプション) – サーバーはクライアントシステムに実行可能コードを送信できます
RESTとSOAPの違い
RESTは、インターネット経由でデータを転送する別の標準群であるSOAPと比較されることがよくあります。ただし、RESTは単なる設計スタイルであるのに対し、SOAPは特定の規則やコマンドを持つ実際のプロトコルです。REST APIとSOAP APIはどちらもHTTP経由でデータを送信しますが、SOAPはXMLデータに限定されるのに対し、RESTのほうが柔軟です。
SOAPは正式なプロトコルであるため、SOAP経由で送信されるすべてのメッセージは、ヘッダーと本文を含む同じ「エンベロープ」形式を使用する必要があります。SOAPの後に登場したRESTは制約が少なく、SOAPに代わる軽量な方式と考えられることがよくあります。
NOTE: RESTのガイドラインに準拠するAPIは、技術的には「RESTful API」と呼ばれますが、多くの開発者は代わりに「REST API」と呼んでいます。
知識をテストする