1

REST全般について質問があります。

銀行カードで実行される操作を追加するために使用されるWCFWebサービスがあるとします。問題は、WSに渡すパラメータが約30個あることです。

WCFでは、これらすべてのパラメーターを使用してRPCを呼び出すと、非常に簡単に実行できます。

問題は、このWCFWSをServiceStackを使用してRESTAPIに切り替えたかったことです。

私が遭遇した問題は、RESTを使用して操作を作成し、「querystring」を介してパラメーターを渡そうとすると、読み取りにAWFULであり、非常に長い(?amount=1234&operationID=12&など)文字列があることです。

リソース指向ではないため、この方法は適切ではありませんが、そのアイテムの作成をいくつかのステップに分割する必要があることを意味します(つまり、最初にPOSTを使用して作成し、次にいくつかの投稿を使用して新しい情報/フィールドを追加しますか?) 。

この状況では、RESTによるゲインを明確に確認することはできません。

4

2 に答える 2

1

これらのパラメータをクエリ文字列で渡す場合は、HTTPGETを実行していると思います。REST APIでは、GETは通常、データを取得するために予約されており、渡すパラメーターは結果をフィルター処理することだけです。システムの状態を変更する操作を実行している場合は、POSTまたはPUTを実行し、メッセージの本文のデータをクエリ文字列ではなくXMLまたはJSONとして渡します。

RESTの利点は、このAPIを他のAPIに公開する場合です。これにより、異種システムへの移植性が大幅に向上し、パフォーマンスにいくつかの利点があります。また、Webブラウザなどのクライアントが使用できるようにAPIを開きます。ただし、このAPIが、ブラウザーで実行されていない.NETアプリケーションの内部使用のみを目的としている場合は、WCFを使用することをお勧めします。RESTはすべての問題の答えではありません。

于 2013-01-09T21:33:46.750 に答える
0

あなたの質問を理解するのはよくわかりません...RESTは「ペイロードなし」を意味するものではありません。それどころか、RESTは「RepresentationalState Transfer」を意味するため、HTTPリクエストの本体(別名「RepresentationalState」)が不可欠です。

多くの理由で、銀行の場合、リソースは通常銀行業務です。CouchDBのガイドには、それに関する非常に優れたシナリオがあります。

言い換えると、「パラメーター」は、GET、POST、PUT、またはDELETEするリソース表現(JSON、XML、または必要なもの)の属性になります。

于 2013-01-09T21:22:57.700 に答える