[解決済み] JSON、REST、SOAP、WSDL、そしてSOA。これらはどのように結びついているのか
質問
現在、いくつかの試験を受けていますが、いくつかの概念で苦労しています。これらはすべて私のノートに「言及」されているのですが、それらがどのように関連しているのかがよく理解できませんでした。私の理解の範囲では
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で、その理由はあらゆる言語で簡単に使用でき、パースしやすいからです。
関連
-
[解決済み】RestClientException: 適切な HttpMessageConverter が見つかりませんでした。
-
[解決済み] JSONDecodeError: 期待される値:行1列1
-
stdClass 型のオブジェクトを配列として使用できない
-
TypeError: タイプ 'bytes' のオブジェクトは JSON シリアライズ可能ではありません。
-
[解決済み] REST API - "Accept: application/json" HTTP ヘッダーを使用する
-
[解決済み] RESTful WebServiceにファイルや関連データをJSONで投稿する。
-
[解決済み] nodeやExpressを使用してJSONを返す正しい方法
-
[解決済み] JSONオブジェクトをTypeScriptのクラスにキャストする方法を教えてください。
-
[解決済み] .NET NewtonSoft JSONのデシリアライズマップを異なるプロパティ名に変更する。
-
[解決済み] WSDL、SOAP、RESTとは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】tsconfig.json: Build:No inputs were found in config file.
-
[解決済み] json gem のインストール中にエラー 'mkmf.rb can't find header files for ruby' が発生する。
-
[解決済み] node.jsでJSONをpretty-printするにはどうしたらいいですか?
-
[解決済み] JSONのXSLT対応
-
[解決済み] JSONの二重引用符をエスケープする方法
-
[解決済み】JSONとXMLの比較【クローズド
-
[解決済み】GoのJSONマーシャルでJSONのキー名を小文字にする
-
[解決済み] Node.jsでJSONオブジェクトの内容をログに記録する方法は?
-
[解決済み] JSONの容量に限界はありますか?
-
[解決済み] ネストされたJSONオブジェクトのアンマーシャリング