RESTfulはアーキテクチャスタイルですが、SOAPベースのWebサービスがRESTfulに数えられない理由は何ですか?
以下のポイント( Wikipedia から)がSOAPに準拠していないことは、私にはわかりません。
[〜#〜] edit [〜#〜]:偶然出会ったばかり this 要約するとかなりうまくいきます。
RESTはRPCではない、RPCは「何かを行ういくつかのメソッドを定義する」と言いますが、RESTは「いくつかのリソースを定義すると、これらのメソッドを持つようになる」と言います。事前定義された一連のメソッドを介してやり取りし、代わりに標準のHTTP応答を受信できることを誰もが知っているURIが与えられた場合 http://www.peej.co.uk/ GETして、意味のある何かを受け取ります。それを変更するためにPUTを試行し、それに干渉する権限がないため、意味のあるHTTPエラーコードを受け取ります。
SOAPはRPCパターンに従います。 A SOAP APIは、コードから呼び出すことができる一連のメソッドとそのパラメーターおよび戻り値を記述します。これをネットワーク表現に変換するマーシャリングステップがあります。
RESTがRPCになることはありません。 REST APIは、一連のリソースと、それらに作用する一連の動詞(通常、HTTPのGET、POST、PUT、DELETE)を記述します。
質問に直接回答するには:SOAPは主にポイント6に違反します(API全体で動詞の統一されたセットを提供しません)。また、ポイント2に違反します(サーバーは各クライアントの状態を維持できます) 、およびその結果としてポイント3も(状態がキャッシングを防止します)。
RESTとSOAPは同等の概念ではありません。
残り:
石鹸:
上記のリストの項目2と3は、非互換性の主なポイントです。
REST=の目的の1つはキャッシュ可能性です。これは、リソースをuri(クエリ文字列)で識別する必要があるためです。soapでリクエストが投稿されます。そのため、異なるリクエストに対して同じuriがありますしたがって、リソースはurによって一意に識別できません
RESTはhttpプロトコルにのみ準拠しています。
SOAPプロトコル:SOAPは、定義済みの構造を持つプロトコルです。
RESTful API設計では、リソースの観点からシステムを破壊し、WebサービスのベースURIで定義されたエンドポイント(操作とも呼ばれる)を介してこれらのリソースへのアクセスを提供します。アクセスは、標準のHTTPメソッドを使用して行われ、認証メカニズムによって制御されます。リソースの構成は、ステータスを伝えるHTTPステータスコードを使用したリクエストとレスポンスを通じて提供および取得されます。 1.リソースは、RESTfulにされるシステムに存在するエンティティです。たとえば、ブログのウェブサイトの場合、これらはブログ、投稿、コメントにすることができます。 2. EndPointまたは操作は、これらのリソースにアクセスできるメカニズムを提供します。たとえば、特定のブログのすべてのブログ投稿をリストするエンドポイントは、/ blogs/{blogId}/postsのGETになります。 3.ベースURIは、エンドポイントを介してリソースを利用できるWeb URIの場所を定義します。実際の例として、Googleブロガーのbase_uriは https://www.googleapis.com/blogger/v です。 4. HTTPメソッドは、RESTのシンプルさがあります。RESTfulAPI設計では、リソースに対する操作は、標準のHTTPメソッド、主にGET、POST、PUT、DELETEを通じて行われます。その他のHTTPメソッド- OPTIONS、HEAD、PATCHも使用される場合があります。
Restful: RESTは、HTTPプロトコルを使用してWebサービスを構築するためのアーキテクチャスタイルであり、Webサービスはリソースとして扱われ、GET、POST、DELETEなどの基本的なHTTPメソッドが使用されます。リソースに対する標準アクションを識別するため。RESTfulWeb API(RESTful Webサービスとも呼ばれます)は、HTTPおよびREST原則を使用して実装されたWeb APIです。
Soap: SOAPは、もともとSimple Object Access Protocolとして定義されていたもので、構造化された情報をXML形式で交換するためのプロトコル仕様です。
SOAP vs REST Webサービス
1)SOAPはプロトコルですが、RESTはアーキテクチャスタイルです。
2)SOAPは使用できませんRESTこれはプロトコルなので、RESTはSOAP Webサービスは概念であり、HTTP、SOAPなどの任意のプロトコルを使用できるためです。
3)SOAPはサービスインターフェイスを使用してビジネスロジックを公開するのに対し、RESTはURIを使用してビジネスロジックを公開します。
4)SOAPは厳密に準拠する標準を定義していますが、RESTはSOAPのような標準をあまり定義していません。
5)SOAPはRESTよりも多くの帯域幅とリソースを必要としますが、RESTはSOAPよりも少ない帯域幅とリソースを必要とします。
6)SOAPは独自のセキュリティを定義しますが、RESTful Webサービスは基になるトランスポートからセキュリティ対策を継承します。
7)SOAPはXMLデータ形式のみを許可しますが、RESTはプレーンテキスト、HTML、XML、JSONなどの異なるデータ形式を許可します.
RESTful Webサービスは、SOAP Webサービスよりも優先されます。