1. ホーム
  2. json

[解決済み] JSON、REST、SOAP、WSDL、そしてSOA。これらはどのように結びついているのか

2022-04-27 14:31:20

質問

現在、いくつかの試験を受けていますが、いくつかの概念で苦労しています。これらはすべて私のノートに「言及」されているのですが、それらがどのように関連しているのかがよく理解できませんでした。私の理解の範囲では

SOA - サービスの消費者/提供者を通信させるためのソリューション。(私が理解する限り、これは他のすべてのための包括的な用語です。)

WSDL - プロバイダサービスを記述するための言語。

SOAP - サービスがメッセージを送信するために使用するXMLプロトコルの「ラッパー」です。WSDLと連動して、パラメータを提供するように動作する?

REST - 機能的にはSOAPに似ているが、XMLを避けたデザインパターン?(これについては本当によくわからない)

JSON - javascriptを使用したXMLの代替?(これもよくわからない)

インターネットを見回すと、これらのすべてが何であり、どのようにリンクしているのか、明確な定義がないように思われます。

どのように解決するのか?

あなたがウェブアプリケーションを開発していて、より大きな自由をもたらすという理由で、アプリケーションのプレゼンテーションから機能を切り離すことに決めたとします。

APIを作成し、その上で他の人が独自のフロントエンドを実装できるようにします。今あなたがやったことは SOA 方法論、すなわちウェブサービスを使用することです。

ウェブサービスは、機能的なビルディングブロックに標準的な方法でアクセスできるようにします。 インターネットプロトコルは、プラットフォームやプログラミング言語に依存しません。

つまり、有用なものを処理・生成するバックエンド(ウェブサービス)と、データを消費するフロントエンド(何でもあり)の間の交換メカニズムを設計するのです。(ウェブ、モバイル、デスクトップアプリケーション、または別のウェブサービス)。ここでの唯一の制限は、フロントエンドとバックエンドが同じ言語を話さなければならないということです。


そこで登場するのが、SOAPとRESTです。 これらは、あなたがウェブサービスと通信するための標準的な方法です。

SOAPです。

SOAP は、内部でXMLを使用してデータをやり取りしています。SOAPメッセージは厳格な構造を持っており、レスポンスXMLをパースする必要があります。 WSDL は、どのようなリクエストを、どのようなパラメータで行うことができるか、そして何を返すかについての仕様です。これは、APIの完全な仕様である。

RESTです。

RESTは設計思想である。

ワールド・ワイド・ウェブ(World Wide Web)が RESTのアーキテクチャスタイルに準拠している。

SOAPほど堅苦しくはない。 RESTfulウェブサービス は、標準的なURIとメソッドを使用して、ウェブサービスに呼び出しを行います。URIを要求すると、そのURIは 表現 のオブジェクトを作成し、それに対して操作を行うことができます(例:GET、PUT、POST、DELETE)。データを表現するためにXMLを選ぶことに限定されず、本当に何でも選ぶことができます(JSONも含む)。

<ブロッククオート

FlickrのREST APIはさらに進んで、画像も返すことができる。


JSON XML は機能的に同等であり、一般的な選択肢です。また、ProtobufsをベースにしたGRPCやApache ThriftのようなRPCベースのフレームワークもあり、APIのプロデューサとコンシューマ間の通信に使用することが可能である。Web APIで最もよく使われる形式はJSONで、その理由はあらゆる言語で簡単に使用でき、パースしやすいからです。