私は自分のAjax Webサイトを構築していて、 [〜#〜] rest [〜#〜] とRPCの間で考えています。
サーバーがサーブレットをサポートしている場合、 persevere をインストールして問題を終了しますが、サーバーがサーブレットをサポートしていません。
RPCはコーディングが簡単(IMO)で、PHPで簡単に記述できます。必要なのはデータベースクエリ実行プログラムだけです。 Dojo Toolkit とJSONを使用しています。
REST over RPCまたはRPC over RESTを選択する必要があるのはなぜですか?
うーん...簡単に言えば、どちらも非常に抽象的なモデルです...とても抽象的なので、どこでも自然に発生します...
RESTは、 [〜#〜] crud [〜#〜] の方法でアクセスされるグローバル識別子(HTTPの場合はURI)でアドレス指定されるリソースを持つことを目的としています( [〜#〜] post [〜#〜] 、 [〜#〜] get [〜#〜] 、PUTおよびDELETEを使用HTTPの場合...まあ、少なくともそれは考えです)...
RPCは、別のマシンでプロシージャを呼び出し、いくつかのパラメーターを渡して、戻り値を取得するという考えです...
Persevereは両方を許可するサービスを作成します(非常にエレガントな方法で、確かに)... RESTful です(ただし、これを実現するためにHTTP機能を使用するだけではありません)andはRPCインターフェイスを公開します...
最後に、アプリケーションが実行する必要があることを確認する必要があります...ほとんどの人は、おそらくRPC API( [〜#〜] xml [〜 #〜] または [〜#〜] json [〜#〜] または何でも)、部分的にRESTfulなサブシステムのトランスポート層を含みます...これは、RESTfulnesを持っているため、柔軟性を意味します...クライアントが(単純なCRUDメソッドのセットを介して)サーバー上のデータを多かれ少なかれ自由にトラバースできる場合、公開されているメソッドの限られた(問題固有の)セットに依存しませんAPIを使用して、ロジックをクライアント側にシフトできます...
それを理解する最良の方法は、ロイT.フィールディングの論文、または彼の blog に関する関連記事を読むことです。ここでは、純粋なRESTと単にRPCアーキテクチャの違いについて説明しています。
もう1つ注意すべき点は、RESTに関するWikipediaの記事は悲惨な状態にあり、RESTの「発明者」であるフィールディング自身が記事が不正確であると示唆していることです。
RESTで見落としがちな最大の問題は発見可能性です。リソースには、帯域外で標準化されていないURI命名規則に依存するのではなく、ハイパーテキスト内に他の関連リソースのURIを含める必要があります。
SOAPやXML-RPCなどの一般的なRPC実装の大きな問題は、PUT、GET、DELETEなどのHTTPのすべての異なるプロパティを利用するのではなく、独自の独自のアーキテクチャの下でHTTPを使用することです。これは従来のWebスタックにも適合しません。たとえば、中間のキャッシュサーバーは、RPC呼び出しの内容の意味を知らなければ機能しません。
これはRESTとRPCの不完全な紹介ですが、見落としがちな重要なポイントのいくつかを強調したと思います。 RESTには間違った情報がたくさんあるので注意してください。
とはいえ、RESTはすべてに使用できるわけではありません。これはアーキテクチャーであるため、実装方法はかなり柔軟です。しかし、主にリソースとしてアクセスすることが意味をなさない場合、RESTが適合しないか、アプリケーションの一部にしか適合しない可能性があります。
サービスには3つの異なるスタイルがあります。
SOAPおよびRESTは W3C からの標準のコンパイルであり、主な違いはSOAPがHTTP、SMTPなどを使用することです。トランスポートプロトコルおよびRESTアプリケーションプロトコルとして使用します。別名、GET、PUT、Push、DELETE、およびPOSTです。)SOAPは、XMLの使用も意味します。およびRESTは任意のデータ型(JSON、XML、HTTPなど)を使用できます。さらに、SOAPの主な利点の1つはサービス記述子( WSDLファイル)。サービスコネクタ(プロキシ)をクライアントに自動生成する可能性を提供します。
銀の弾丸 はありません。 Webサービスのタイプとアーキテクチャは、実際のクライアントとテクノロジーの要件によって異なります。
この件に関する一般的なアイデアについては、Martin Fowlerの署名入りの本の1つを参照してください- Service Design Patterns