Web/DB プログラミング徹底解説

ホーム > JavaScript プログラミング > REST とは?

REST とは?

最近 「REST」 とか 「REST フル」 という言葉を聞くようになりました。

言葉は良く聞くのに、自分はいまひとつわかっていなかったので、すごく居心地の悪い気がしていました。 しかも、自分が好きな Web の分野っぽいということもわかっていたので、余計にそれが何か調べたくなりました。

そこで調べてみたら、ウィキペディアに次のように書いてありました。

次第に、XMLやHTTPを使った簡易なウェブベースのインターフェイスのうち、WebサービスのSOAPプロトコルのような MEP(Message Exchange Pattern; SOAPノード相互のメッセージ交換のパターンを確立するための雛型)ベースの特別な抽象化をしないもののことを、大まかに意味する用語として使われるようになった。RESTは次に述べるように2つのやや異なる意味で使われている。
  1. FieldingのRESTアーキテクチャスタイルの原則に合わせたWebサービスシステム。
  2. RPCスタイルに合わせた簡易な XML+HTTP インターフェイスを採用したシステム(SOAPは使わない) 。
RESTはこのように2つのやや異なる意味で使われているため、技術的な議論の中で混乱を引き起こすことがある。
Wikipedia より

私はこれを読んで 「なるほど!」 と思いました。

注目することころはここです。

「RPCスタイルに合わせた簡易な XML+HTTP インターフェイスを採用したシステム(SOAPは使わない) 。 」

SOAP を使わない XML HTTP インターフェイス のことを REST といっていいのですね! それなら心当たりがあります。 HTTP の GET で情報を要求してその結果が XML で返ってくる、 というのはよくある "Web サービス" ですよね。

"Web サービス" というと、 SOAP (主に SOAP over HTTP) 呼び出しを使った分散アーキテクチャのことだと思っていました。 そういえば、最近は必ずしも SOAP じゃないサービスを "Web サービス" って呼ぶようになってきてました。 あれが REST なんですね。

簡単に表にまとめると次のように書けるでしょう。

Web サービス
  SOAP Web サービス REST Web サービス
リクエスト方法 SOAP リクエスト HTTP GET/POST リクエスト
(SOAP メッセージではない名前と値のペア)
レスポンス SOAP レスポンス XML メッセージ

REST 関連書籍