Web Service のトレンド
最終更新: 2017年4月
歴史的なウェブサービスの変遷で言うと、もともとは 「Web サービス」というのは デスクトップアプリケーションから RPC (リモート・プロシージャ・コール) とか DCOM とか RMI みたいに、リモートマシン上のメソッド呼出しを行う ためのものでした。
その時にプロトコルは極力 HTTP を使って、メソッド呼出しは XML メッセージとして定義し、応答も XML メッセージにしよう、 というのが SOAP でした。
つまり最初は XML で定義される SOAP メッセージの受渡しをするのが、ウェブサービスでした。
XML は基本的に強く型付けされるので、 WSDL でエンドポイントとかメソッド (SOAP アクション) を決めることで、 自動的に SOAP プロキシを生成できたりするのでいいね、というのも売りでした。
現在では IDE とか、コマンドツールとかのサポートがあって、WSDL からプロキシコードを 生成するのは簡単にできる場合が多いです。
ところが SOAP ベースの Web サービスが増えてきたころ、ちょうどブラウザで XHR のサポートが広まり JavaScript の可能性が見直されてきました。
JavaScript から使うとなると、無駄なデータのやりとりはより避けられるようになり、 XML のオーバーヘッドとか、エンベロープを作るのは無駄だとか、他の問題が重視されました。
そこで、メソッド呼出しに当たるものは 「メソッド名 = URL、パラメータ = クエリ文字列に詰め込む」といった、 レストフル (RESTFul) なウェブサービスが多く使われるようになりました。
こちらは呼出しこそ WSDL みたいな定義はでてきませんが、返ってくるデータに特に決まりもなく、 JSON もアリで、そのまま JavaScript のオブジェクトとして取り込めるので応答のパースも簡単。
という流れで、いまどき JSON を前提にしている HTTP ライブラリが増えてきてます。