REST とは?
最近 「REST」 とか 「REST フル」 という言葉を聞くようになりました。
言葉は良く聞くのに、自分はいまひとつわかっていなかったので、すごく居心地の悪い気がしていました。 しかも、自分が好きな Web の分野っぽいということもわかっていたので、余計にそれが何か調べたくなりました。
そこで調べてみたら、ウィキペディアに次のように書いてありました。
次第に、XMLやHTTPを使った簡易なウェブベースのインターフェイスのうち、WebサービスのSOAPプロトコルのような MEP(Message Exchange Pattern; SOAPノード相互のメッセージ交換のパターンを確立するための雛型)ベースの特別な抽象化をしないもののことを、大まかに意味する用語として使われるようになった。RESTは次に述べるように2つのやや異なる意味で使われている。RESTはこのように2つのやや異なる意味で使われているため、技術的な議論の中で混乱を引き起こすことがある。
- FieldingのRESTアーキテクチャスタイルの原則に合わせたWebサービスシステム。
- RPCスタイルに合わせた簡易な XML+HTTP インターフェイスを採用したシステム(SOAPは使わない) 。
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 メッセージ |