REST 【Representational State Transfer】
概要
REST(Representational State Transfer)とは、分散システムにおいて複数のソフトウェアを連携させるのに適した設計原則の一つ。2000年にロイ・フィールディング(Roy Fielding)氏が提唱した。狭義には、それをWebシステムに適用したソフトウェアの設計様式を指し、一般にはこの意味で用いられることがほとんどである。一般によく使われる(本来は狭義の)RESTは、パラメータを指定して特定のURLにHTTPでアクセスすると、XMLやJSONなどで記述されたメッセージが送られてくるようなシステム、および、そのような呼び出し規約(「RESTful API」と呼ばれる)のことを指す。
システムやセッションの状態に依存せず、同じURLやパラメータの組み合わせからは常に同じ結果が返されることが期待される。ただし、厳密な技術的定義が共有されているわけではなく、「SOAPやRPCなどを必要としない、軽量でフラットなWebインターフェース」くらいの意味で用いられる場合が多い。
本来のREST
フィールディング氏が示した(本来の)RESTの設計原則は主として以下の4つの項目から成る。
「セッションなどの状態管理を行わず、やり取りされる情報はそれ自体で完結して解釈することができる」(WebではHTTP自体にはセッション管理の機構はない)、「情報を操作する命令の体系が予め定義・共有されている」(WebではHTTPメソッドに相当)、「すべての情報は汎用的な構文で一意に識別される」(URL/URIに相当)、「情報の一部として、別の状態や別の情報への参照を含めることができる(ハイパーメディア的な書式で情報を表現する)」(HTMLやXMLに相当)の4つである。
氏が示したのは抽象的な概念モデルで、HTTPやXMLといった個別具体的な技術や要件の組み合わせを直接論じたわけではない。理論上はWeb系の技術や規格とはまったく無縁なRESTシステムもあり得る。
(2019.12.4更新)
関連用語
他の辞典による解説 (外部サイト)
この記事を参照している文書など (外部サイト)
- 情報処理推進機構(IPA)「先進的な設計・検証技術の適用事例報告書 2015年度版」掲載論文 三菱電機「D-Case導入によるシミュレーションS/Wの期待結果明確化と合意形成」(PDFファイル)にて引用 (2015年11月)