私のWebページで、動的なドロップダウン(選択した国に基づく都市名など)を表示したい場合は、AJAXを使用して表示できます。しかし、REST呼び出しを使用してそれを行うこともできます。どちらを使用すればよいですか?
私の問題は、RESTと他のHTTPブラウザーリクエストの違いがまったくわからないことです(フォーム送信)。RESTの正式な定義を見てきましたが、HTTPリクエストと同じように見えます。では、RESTは本質的にAJAXとどう違うのでしょうか?
私のWebページで、動的なドロップダウン(選択した国に基づく都市名など)を表示したい場合は、AJAXを使用して表示できます。しかし、REST呼び出しを使用してそれを行うこともできます。どちらを使用すればよいですか?
私の問題は、RESTと他のHTTPブラウザーリクエストの違いがまったくわからないことです(フォーム送信)。RESTの正式な定義を見てきましたが、HTTPリクエストと同じように見えます。では、RESTは本質的にAJAXとどう違うのでしょうか?
回答:
AJAXを使用してそれを行うことができます。しかし、REST呼び出しを使用してそれを行うこともできます。
いいえ。これら2つは完全に直交しています。あなたは、サーバーから取得する必要があり、データを使用してページを更新したい場合は、します AJAXを使用してそれを行います。他に方法はありません。そして、そのAJAX呼び出しは RESTなどを使用できます。
私の問題は、RESTとHTTPブラウザーリクエストの違いが本当にわからないことです(フォーム送信)。RESTの正式な定義を見てきましたが、HTTPリクエストのようです。
RESTの呼び出しがあり、常に、HTTPリクエスト。それは(フォームの提出のような)通常のブラウザのコールを処理し、完全なHTMLページを返すために使用することができますが、それはだ、通常は(通常はJSON形式)のデータのみを返すハンドルAPIの呼び出しに使用します。
では、なぜ別の名前になっているのでしょうか?
RESTはHTTPを使用する特定のスタイルであるため、間違いなく本来使用することを意図していたものの、ほとんどの人はHTTPを「取得」せず、ほぼ20年間使用されなかったためです。
具体的には、RESTは、URL自体で(通常はIDを介して)取得または操作するエンティティをエンコードし、使用するHTTPメソッドで取得するアクションをエンコードすることを意味します(取得にはGET、変更にはPOST、作成にはPUT 、削除する場合はDELETE)。
まあ、私はまず、AJAXとRESTが実際のユースケースの代替手段ではないことを理解する必要があると思います。AJAXは非同期のJavaScriptとXMLを表すので、ブラウザのリクエストが完了した後でJavaScriptを使用してデータをロードしている場合は、AJAXを実行しています。
一方、RESTは、Representational State Transferを表しており、Stefan Billetが指摘したように、HTTPリクエストを使用してデータを転送します。したがって、RESTは実際にAJAXを使用する1つの方法です。SOAPもまた別のものですが、これはあなたの質問には関係ありません。ですから、あなたの質問はむしろ「どのユースケースに最適なテクノロジーですか?」
この場合、ドロップダウンで使用されるデータの量について考えることをお勧めします。要素が数個しかない場合は、それらをすべてページに配置し、JavaScriptを使用して適切な要素を表示します。2番目のオプションは、表現としてJSONを使用したREST呼び出しを使用することです。これは、JavaScriptで簡単に使用でき、非常に軽量であるため、もちろんAJAXを実行することにもなります。
RESTは、HTTP動詞GET、POST、PUT、DELETEを使用して、サーバー上のリソースをそれぞれ取得、挿入、更新、削除します。例:GET with url:controller / customer / {id}
代替手段は、GetCustomerById(id)、InsertCustomer(customer)、UpdateCustomer(customer)、DeleteCustomer(customer)などのメソッドをコントローラに追加することです。これはRPCアプローチとして知られているものです。例:GET with url:controller / GetCustomerById?id = {id}
違いの1つは、REST APIが予測可能であることです。RESTを知っていて、必要なリソース(たとえばCustomer)の名前を知っている場合は、すぐにジャンプして、標準の動詞でRESTコントローラーを使用できます。
RPCアプローチでは、コントローラーにあるメソッド、それらが取る引数の種類などを知る必要があります。これらのシグネチャは、コントローラーごと、アプリごとに異なる場合があります。
一方、AJAXは、REST呼び出しまたはRPC呼び出しとして、前述の要求を配置する非同期の方法にすぎません。