search
LoginSignup
767

More than 5 years have passed since last update.

posted at

updated at

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

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
767