2007-02-28
■[プログラミング全般]XML-RPC,SOAP,RESTに関する調査
以前ブログにも書きましたが、XML-RPC,SOAP,RESTの区別が全然出来ていないという困った状況だったので、ちょっと気合を入れて調べてみました。
以下、それぞれの特徴を簡単にまとめたメモ。
- XML-RPC(XML Remote Procedure Call)
- SOAP(Simple Object Access Protocol)
- XML-RPCを拡張した仕様。
- SOAPはHTTPだけでなく、他のプロトコルも使うことが出来る。
- リクエストはXML-RPCと同様にHeaerと、Bodyで構成されるが、Headerは省略可能。
- 戻り値を複数の値にすることが可能。
- REST(Representational State Transfer)
こうしてそれぞれの特徴を比べてみると違いが分かる気がします。
XML-RPCとSOAPはリクエストにXMLを用いるという点で似たような仕様で、SOAPはXML-RPCの拡張版。RESTは仕様ではなく、HTTPの4つのメソッドを使ってやり取りを行うという考え。よってリクエストにXMLを使うのか、それともURLにパラメータを含めてデータの取得を行うのか、などが定められているわけではない。強引にまとめた感はありますが、こんな感じでしょうか。
・参考資料
- PerlでWeb APIを使いたおす
- 第1回〜第6回に渡って、XML-RPC、SOAP、RESTについて書かれている。順を追ってそれぞれについて説明されているので非常に分かりやすい。Perlのサンプルコードあり。
- XML-RPC 仕様書
- 以前の記事でも紹介した、XMP-RPCの仕様書。
- yohei-y:weblog: REST 入門
- RESTに関する詳しい説明、技術的な話だけでなく概念的な事も詳しく述べられている。
- SOAP Version 1.2 Part 0: Primer(英語)
- SOAPの仕様。SOAPのサンプルリクエストあり。