RESTを使用してリクエストを処理する場合とAJAXを使用してリクエストを処理する場合[終了]


12

私のWebページで、動的なドロップダウン(選択した国に基づく都市名など)を表示したい場合は、AJAXを使用して表示できます。しかし、REST呼び出しを使用してそれを行うこともできます。どちらを使用すればよいですか?

私の問題は、RESTと他のHTTPブラウザーリクエストの違いがまったくわからないことです(フォーム送信)。RESTの正式な定義を見てきましたが、HTTPリクエストと同じように見えます。では、RESTは本質的にAJAXとどう違うのでしょうか?


6
ご想像のとおり、これらは相互に排他的ではありません。
セスバティン2013

2
アプリケーションが別のアプリケーションからアクセスされる場合、通常はREST APIを使用します
Gian Acuna

両者の比較はわかりません。AJAXは動的Webコンテンツを実装するためのいくつかの技術のアプリケーションですが、RESTはアーキテクチャスタイルです。
jramoyo 2013

2
@downvoter ---なぜ嫌いなの?
Kaushik 2013

回答:


26

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)。


6
RESTは常にHTTP経由である必要はありません。メソッドのセットに適合する場合、どのプロトコルもRESTである可能性があります。ただし、Webアプリケーションのコンテキストでは、もちろんHTTPになります。
Jan Hudec 2013

10
@Jan Hudec:他のプロトコルでRESTが使用されている実例はありますか?
Michael Borgwardt 2013

6

まあ、私はまず、AJAXとRESTが実際のユースケースの代替手段ではないことを理解する必要があると思います。AJAXは非同期のJavaScriptとXMLを表すので、ブラウザのリクエストが完了した後でJavaScriptを使用してデータをロードしている場合は、AJAXを実行しています。

一方、RESTは、Representational State Transferを表しており、Stefan Billetが指摘したように、HTTPリクエストを使用してデータを転送します。したがって、RESTは実際にAJAXを使用する1つの方法です。SOAPもまた別のものですが、これはあなたの質問には関係ありません。ですから、あなたの質問はむしろ「どのユースケースに最適なテクノロジーですか?」

この場合、ドロップダウンで使用されるデータの量について考えることをお勧めします。要素が数個しかない場合は、それらをすべてページに配置し、JavaScriptを使用して適切な要素を表示します。2番目のオプションは、表現としてJSONを使用したREST呼び出しを使用することです。これは、JavaScriptで簡単に使用でき、非常に軽量であるため、もちろんAJAXを実行することにもなります。


Ajaxを使用してWebページの一部をロードする場合、そのAJAX要求はサーバーへのhttp呼び出しです。具体的には、サーブレットの特定のメソッドを呼び出します。この場合、AJAXはRESTを使用していると言っても安全ですか?
Kaushik 2013

まあそれはあなたが呼び出しているメソッドに依存します。メソッドがRESTful WebService(en.wikipedia.org/wiki/Representational_state_transfer)の制約を満たす場合などは、そうすることができます。
レススタット2013

4

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呼び出しとして、前述の要求を配置する非同期の方法にすぎません。


代替はまだRESTです。残りは、使用されるプロトコルではなく、操作のセットによって定義されます。
Jan Hudec 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.