Webサービスについて
SOAP
元々は「Simple Object Access Protocol」の略称がSOAPであり、HTTPやXMLなどのインターネット標準技術を使うことによって、Web上の分散オブジェクトをプラットフォームの壁を越えて利用することを可能にするために開発されたプロトコルである。その後、Webサービス間で交換されるメッセージについての汎用的なフレームワークとなった。
SOAPメッセージというXMLによってメッセージ交換をおこなう方法
ネットワーク上に存在しているオブジェクトにアクセスするためのプロトコルとして開発されたもの。
Webサービスの主役、SOAP誕生の背景:Webサービスのキホン(1) - @IT
REST
「Representational State Transfer」の略称がRESTである。
HTTPを使って通信をおこなう手法であり、HTTPのGETメソッドを使ってあるURLにアクセスすると、XMLが返ってくる。
WebブラウザにURLを入力すれば動作確認できる
Webブラウザで容易に動作確認ができるため、すでに存在しているサービスに対しては「まずはアクセスしてみて必要な情報が得られるか確認し、実際に使うかどうかはそれから考える」という使い方ができる。わざわざテスト用アプリを作る必要がない。
クライアント/サーバを開発する際、サーバを開発する側はWebブラウザを使って動作確認ができ、クライアントを開発する側は想定しているレスポンスをファイルに準備すればテストできる。(手間の省略)
WSDL
WSDLはWeb サービスを記述するための XML 表記のこと
SOAPの定義方法にWSDL(Web Services Description Language)がある。
開発ツールにWSDL文書を読み込ませることによって、Webサービスを呼び出すモジュールのコードを自動生成できるようになる。
WSDL:Webサービスのインターフェイス情報:Webサービスのキホン(4) - @IT
XML
「eXtensible Markup Language」の略称がXMLである。
タグで囲むことで構造を表現する言語(マークアップ言語)のひとつ
(ファイルの書き方ルールのひとつ)
※マークアップ言語とは、文章を構造化するための言語
タグを使うことで、要素名を自由に定義することが可能。
使いどころ
インターネットを経由して複数のアプリケーション間でデータをやり取りするのに適した構造を持っています。
このため、膨大なコンテンツの中から一定のルールに基づいて情報を抽出したり、複数のWebサービスを組み合わせたアプリを制作したりする際に非常に便利です。
記述例
<?xml version="1.0" encoding="Shift_JIS" ?>
<staff>
<member>
<name>田中</name>
<position>サポートエンジニア</position>
<age>29歳</age>
</member>
<member>
<name>Aさん</name>
<position>営業</position>
<age>20歳</age>
</member>
</staff>
https://wa3.i-3-i.info/word1577.html
マークアップ言語とは↓
https://mynavi-creator.jp/blog/article/what-is-mark-up-language
XMLのことを幅広く書いている↓
XMLとは?XMLの基礎と使い方をわかりやすく解説!HTMLとの違いは?タグと要素・文書の構造やフォーマット作成もご紹介| ITフリーランスエンジニア案件ならA-STAR(エースター)
XMLの基礎を理解しよう 〜これだけ知っていれば大丈夫!〜:新入社員のためのXML入門講座(1) - @IT
SOAPとRESTの共通点
Web アプリケーション間のデータ通信を可能にするAPIの構築方法を定義する。
RESTは、一連のアーキテクチャ原則です。
SOAPは、World Wide Web Consortium (W3C) が管理する公式プロトコルです。
主な違いは、SOAP はプロトコルであるが、REST はプロトコルではないという点
SOAP
SOAP は標準プロトコルです。元々、異なる言語および異なるプラットフォームで構築されたアプリケーションが通信できるようにすることを目的に設計されました。
REST
REST は、軽量の Web サービスおよびモバイル・アプリケーションのニーズに合わせた一連のアーキテクチャ原則。
REST API へのデータのリクエストは、HTTP を介して送信されます。要求が受信されると、REST用に設計された API は、さまざまな形式(HTML、XML、プレーンテキスト、JSON)でメッセージを返すことができます。
JSONは、あらゆるプログラミング言語で読み取ることができ、人間も機械も読み取り可能で軽量であるため、メッセージ形式としてよく利用されています。このように、RESTful API はより柔軟で、セットアップが容易です。
SOAPとRESTのどちらを選ぶか
SOAP Web サービスは、多くのエンタープライズのニーズに合わせた組み込みのセキュリティとトランザクション・コンプライアンスを提供しますが、それによってサービス自体は重くなります。
REST API は軽量で、IoT (モノのインターネット)、モバイル・アプリケーション開発、サーバーレス・コンピューティングなどの先進的なコンテキストに向いている。