Help us understand the problem. What is going on with this article?

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

More than 5 years have 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

pink
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away