今さら聞けないWebAPIの実装方式RESTとSOAPの違い

  • 570
    Like
  • 5
    Comment
More than 1 year has passed since last update.

5/27 コメントでご指摘頂いた点を修正しました。

RESTとSOAPの違い

REST API

  • RESTはREpresentational State Transferの略。
  • RESTの世界では、ネットワーク上のコンテンツ(リソース)を一意なURLで表すのが基本。
  • 各リソース(URL)に対してGET,POST,PUT,DELETEでリクエストを送信しレスポンスをXMLやjsonなどで受け取る形式(レスポンスのフォーマット形式は指定されていない)。
  • RESTはURLがリソースに対応づけられるためURLは名詞的になることが多い。

SOAP API

  • SOAPはSimpleObject Access Protocolの略。
  • リクエストおよびレスポンスともにXMLフォーマットのデータで行う形式。
  • SOAPのURLは操作と対応づけられるため、URLの命名が動詞的になることが多い。

参考: http://programming-10000.hatenadiary.jp/entry/20130331/1364714875

RESTとSOAPの使い分け

  • RESTでは不特定多数を対象にした、入力パラメータが少ない情報配信や検索サービス等での利用に向いている。
  • SOAPでは複雑な入力を必要としたり、入出力に対してチェックを必要とするようなサービス等での利用に向いている。

引用元: http://xmlconsortium.org/wg/web2.0/teigensho/4--REST-SOAP.html

RESTとRESTfulの違い

ところで、RESTfulという言葉も聞くがこれは何を指すのか…

  • RESTの原則に従って実装されているシステムのことを、RESTfulと呼ぶようです。
  • 今現在、多数のWebAPIが国内で公開されていますが、そのほとんどがREST形式であると自称している(もしくはREST形式と一般に認知されています)。ですがそのほとんどは、HTTPプロトコルに対してXML形式の結果を返しているだけで、完全なRESTとはいえない「なんちゃってREST」であるような気がします。
  • 当時からこういった説明をするサービスが多かったこともあり、RESTといえば「HTTPリクエストに対してXMLレスポンスを返すもの」という認識が一般に広まり、普通に使用されるようになってしまった感があります。 そういった経緯のせいかどうかはわかりませんが、RESTに忠実な実装を行ったシステムのことをRESTfulと呼ぶようになり、なんとなく棲み分けができて、めでたしめだたし?となっているようです。

引用元: http://convivial-web.com/blog/2009/03/restrestful.html