なぜRESTは流行ったのか?理由はブラウザから簡単に呼べるから

2015年2月25日に投稿 → に更新

N825_kouyoutojyosei500

mozaic.fmで「なぜRESTは流行ったのか?」について話していたので私も自分なりに理由を考えてみました。

この番組ではRESTの歴史的経緯などが語られていましたけれど、私はもっと単純に考えています。

私が思うRESTが流行った理由は、「リモートコールする一番簡単な手段だから」というだけだと思っています。

詳しく紹介します。

厳密なRESTは流行っていない!

RESTについて、WikiPediaには以下のように書かれています。

RESTは次に述べるように2つのやや異なる意味で使われている。
1.FieldingのRESTアーキテクチャスタイルの原則に合わせたWebサービスシステム。
2.RPCスタイルに合わせた簡易な XML+HTTP インターフェイスを採用したシステム(SOAPは使わない) 。

2は流行ったけど、1は流行ってませんよね。2も正確に言うとJSON/XML+HTTP インターフェイスを採用したシステム(SOAPは使わない)ですよね、今となってはXMLを返すREST APIの方が少数派です。

1はURIの命名規則だったりGET, POST, PUT, DELETEを用途に合わせて使い分けるとかっていう厳密な意味でのRESTですが、現実的にはPUTやDELETEなんて使わないし、URIも自由につけてる場合が多いと思います。

そんなわけで、REST APIの使われ方のほとんどはGETかPOSTでリモートコールをしてレスポンスのフォーマットがJSONかXMLってだけです。

これをこの記事では簡易RESTと呼ぶことにします。

なぜ、簡易RESTは流行ったか?

RESTが流行る前からシステム間連携する時に、CGIのGETパラメータでデータ送って、DB更新して、レスポンスはOKとかの単純な文字だったり、独自フォーマットを返すような使われ方がされていました。

その後、時代は進みAjaxが生まれ、レスポンスをJSONやXMLで返すという使い方が広まったのです。

Ajaxからリモートコールする手段はGETかPOSTリクエストするしかなく、JavaScriptからJSON、XMLの操作が容易という理由でこの簡易RESTが流行ったのでしょう。

「ブラウザからリモートコールする手段が他にない上に、手軽に簡単に使える」、そりゃ流行るに決まってます!

SOAPが流行らなかった理由

RESTのライバルだったSOAPはRESTほど流行りませんでした。

SOAPはスキーマ(WSDL)を定義してプロキシコードを生成するのがめんどくさかったのと、そもそもブラウザのJavaScriptからSOAPを呼び出せないので、「SOAPいらないじゃん」となったんでしょう。

それにSOAPはWSDLとUDDIとセットでSOA(Service Oriented Ahchitecture)とか言って、特にエンタープライズ系システムでは

「SOAを実践すればサービスを組み合わせるだけでシステムが作れます。サービスとして再利用できる設計が出来ます。SOAを取り入れないと企業の競争力が失われまぁぁぁぁぁす!!!」

みたいな嘘くさいマーケティングがなされていました。

SOAPは単なるリモートコール技術なのに、その周りに嘘くさいうんちくが足されていたので。当然、Webエンジニアからは無視されていました。エンターブライズ系のエンジニアの中には本気で「SOAすごい!やらなきゃ!」って思った人もいたかもしれませんが、今では全く目にしません。

SOAって「宣伝文句がうるさくて偉そうなくせに実際役に立たない技術」という印象なんですよね。

実用的なものが選ばれる

SOAPではなくRESTが流行って本当に良かったと私は思っています。

私の周りでSOAPとかSOAとか言ってた人達は本当に嘘くさかったし、コードを書いてない人たちでした。

RESTも厳密な方のRESTは説明がうるさいけれど、簡易RESTはシンプルで簡単で実用的です。

そういう技術だからこそ流行ったのだと思います!

プログラミング初心者におすすめのサービス
1. 教室で学びたい派なら

プログラマカレッジは20代限定で、無料で受講できて、修了後、就職支援もしてくれるプログラミングスクールです。最高過ぎですよ、これ!!企業からの協賛金によって運営されいているため無料で受講できるんだそうです。すばらしいシステムだと思います!

30代の方には

プログラマカレッジは20代限定なので30代の方にはゼロスクがおすすめです。35歳以下なら無料で受講できます。教室も札幌、仙台、東京、大阪、神戸、福岡と全国展開しているので地方の方でも利用できます。

2. 自宅で学びたい派なら

TechAcademyの無料コースは20代限定でプログラミングのリモート学習 + 就職支援が無料で受けられるサービスです。なんといっても無料だし、就職に必要なスキルが身につけられるという意味でもやってみて損はないでしょう。

30代以上の方には

TechAcademyの無料コースは20代限定なので30代以上の方にはTechAcademyのJavaコースをおすすめします。Javaは求人が多くプログラマーとして就職したい方にはぴったりです。

3. つまづいた時に質問したくなったら

プログラマー専用の質問サイトteratailをおすすめします。 つまづいた時にteratrailで質問すれば教えてもらえます。

4. エンジニア未経験の人でも利用できる転職エージェント

ワークポートは未経験の人の転職活動も支援してくれますし、全国の求人を扱っているので地方在住の方にもご利用いただけます。お給料をもらいながら社内研修でプログラミングを学べる会社が狙い目です。

これらのサービスを活用すれば、全くの初心者からでもプログラミングをばっちり出来るようになると思います!レッツトライです!

 - 技術