REST と SOAP。それはしばらく前から問題になっています。そして本当に、 これらは、同じ質問に対する 2 つの回答にすぎません: Web へのアクセス方法
しかし、どちらかを決めるのは驚くほど難しい場合があります。
SOAP (Simple Object Access Protocol) は、標準ベースの Web 長い間使用されてきたサービス アクセス プロトコル。 もともとマイクロソフトによって開発された SOAP は、頭字語ほど単純ではありません。
REST (Representational State Transfer) は別の標準であり、 SOAP の欠点への対応。 SOAPの問題を解決しようとしています ウェブ サービスにアクセスするためのより簡単な方法を提供します。
GraphQL はどうですか?
もちろん、GraphQL は最近大きな話題を呼んでいます。
詳しくは他の記事で。しかし、それはまだそれほど標準化されていません
REST と SOAP であるため、この記事ではそれらにのみ焦点を当てます。
2.
SOAP と REST のどちらにも、使用するプロトコルを決定する際に考慮すべき問題があります。
類似点
SOAP と REST は HTTP プロトコル上では類似点を共有していますが、SOAP
REST よりも厳密なメッセージング パターンのセットです。 SOAP のルール
どのレベルの標準化も達成できないため、重要です。
彼らがいなければ。アーキテクチャ スタイルとしての REST は処理を必要としません
そして自然により柔軟になります。 SOAP と REST の両方が依存している
誰もが遵守することに同意した確立されたルール
情報交換への関心。
SOAP の概要
SOAP は XML のみに依存してメッセージング サービスを提供します。 Microsoft は元々 SOAP を開発して古いものに取って代わりました などのインターネットではうまく機能しないテクノロジー 分散コンポーネント オブジェクト モデル (DCOM) と共通オブジェクト リクエスト ブローカー アーキテクチャ (CORBA)。これらのテクノロジーは失敗します。 バイナリメッセージングについて。 SOAP が採用する XML メッセージングはより適切に機能します。
最初のリリースの後、Microsoft は SOAP をインターネットに提出しました 標準化されたエンジニアリング タスク フォース (IETF)。ソープは 拡張をサポートするように設計されているため、他のあらゆる種類の頭字語と WS-Addressing、WS-Policy、 WS-Security、WS-Federation、WS-ReliableMessaging、WS-Coordination、 WS-AtomicTransaction、および WS-RemotePortlets。実際、あなたは見つけることができます Web サービス標準に関するこれらの標準の全リスト。
要点は、SOAP は拡張性が高いということですが、使用するのは
特定のタスクに必要なピース。たとえば、パブリックを使用する場合
誰でも無料で利用できる Web サービスです。
WS-Security が大いに必要です。
難易度はプログラミング言語によって異なります
SOAP で要求を作成し、応答を受信するために使用される XML は、次のようになります。
非常に複雑です。一部のプログラミング言語では、ビルドする必要があります
これらのリクエストは手動で行われますが、SOAP が
エラーに不寛容。ただし、他の言語ではショートカットを使用できます。
SOAP が提供します。作成に必要な労力を軽減するのに役立ちます
リクエストとレスポンスを解析します。実際、.NET を使用する場合、
言語では、XML を見ることさえありません。
魔法の一部は Web サービス記述言語 (WSDL) です。
これは、SOAP に関連付けられている別のファイルです。それは提供します
Web サービスがどのように機能するかの定義。
それを参照すると、IDE はプロセスを完全に自動化できます。だから、
SOAP の使用の難しさは、使用する言語に大きく依存します。
使用します。
組み込みのエラー処理
最も重要な SOAP 機能の 1 つは、組み込みのエラー処理です。もしも
リクエストに問題があります。レスポンスにエラーが含まれています
問題を解決するために使用できる情報。可能性があることを考えると
Web サービスを所有していない場合、この特定の機能は非常に重要です。
そうしないと、なぜうまくいかなかったのかを推測することになります。の
エラー報告は標準化されたコードも提供するので、それが可能です
コード内のいくつかのエラー処理タスクを自動化します。
SOAP の興味深い機能の 1 つは、必ずしも HTTP トランスポートで使用する必要がないことです。 SOAP over Simple Mail Transfer Protocol を使用するための実際の仕様があります (SMTP)であり、他の方法で使用できない理由はありません 輸送します。実際、Python や PHP はまさにそれを行っています。
リクエストフォーム