Quando utilizzare REST per gestire le richieste o utilizzare AJAX per gestire le richieste [chiuso]

5

Nella mia pagina web, se desidero visualizzare elenchi a discesa dinamici (ad esempio nomi di città in base al paese selezionato), posso farlo utilizzando AJAX. Ma posso anche farlo usando una chiamata REST. Quindi, quale dovrei usare?

Il mio problema è che in realtà non ottengo la differenza tra REST e qualsiasi altra richiesta del browser HTTP. (a.k.a un modulo di invio). Ho esaminato le definizioni formali di REST e sembra identico a una richiesta HTTP. Quindi, in che modo REST è intrinsecamente diverso da AJAX?

    
posta Kaushik 25.07.2013 - 06:07
fonte

3 risposte

20

I can do it using AJAX. But I can also do it using a REST call.

Um, no. Questi due sono completamente ortogonali. Se vuoi aggiornare la tua pagina con i dati che devi ottenere da un server, farai per farlo usando AJAX. Non c'è altro modo. E quella chiamata AJAX può usare REST o qualcos'altro.

My problem is i really dont get the difference between REST and an HTTP browser request.(a.k.a a form submit). I have looked at formal definitions of REST and it seems like a HTTP request.

Una REST chiamata è una richiesta HTTP, sempre. Sebbene possa essere utilizzato per gestire le normali chiamate del browser (come i moduli inviati) e restituire pagine HTML complete, è solitamente utilizzato per gestire le chiamate API che restituiscono solo dati (di solito in formato JSON).

So why it has a separate name?

Perché REST è uno stile specifico di utilizzo di HTTP, probabilmente usato come originariamente pensato per essere utilizzato, ma che la maggior parte delle persone non ha "ottenuto" e quindi è stato usato raramente per quasi 2 decenni.

In particolare, REST significa codificare quale entità si desidera recuperare o manipolare nell'URL stesso (di solito tramite un ID) e codificare quale azione si desidera eseguire su di esso nel metodo HTTP utilizzato (GET per il recupero, POST per il cambiamento, PUT per la creazione, DELETE per l'eliminazione).

    
risposta data 25.07.2013 - 09:24
fonte
5

Bene, penso che prima devi capire che AJAX e REST non sono realmente alternativi alle tue case d'uso. AJAX sta per asincrono javascript e XML, quindi se stai usando javascript per caricare i dati dopo che la richiesta del browser è terminata stai facendo AJAX.

REST d'altra parte sta per Representational State Transfer che, come ha sottolineato Stefan Billet, usa le richieste HTTP per trasferire i dati. Quindi REST è in realtà un modo per fare AJAX con. SOAP sarebbe un altro, ma questo è fuori dal comune per la tua domanda. Quindi la tua domanda dovrebbe essere piuttosto: "Quale tecnologia è la migliore per il mio caso d'uso?"

In questo caso, consiglierei di pensare alla quantità di dati utilizzati nei menu a discesa. Se hai solo pochi elementi potresti averli tutti nella tua pagina e basta usare javascript per mostrare quelli appropriati. Una seconda opzione potrebbe essere l'utilizzo di una chiamata REST con JSON come rappresentazione perché è facile da usare con javascript e molto leggero, il che ovviamente significherebbe anche fare AJAX.

    
risposta data 25.07.2013 - 09:27
fonte
4

REST utilizza i verbi HTTP GET, POST, PUT, DELETE per ottenere, inserire, aggiornare, eliminare risorse su un server. Per esempio. OTTIENI con l'url: controller / cliente / {id}
L'alternativa è l'aggiunta di metodi a un controller come GetCustomerById (id), InsertCustomer (cliente), UpdateCustomer (cliente), DeleteCustomer (cliente). Questo è noto come approccio RPC. Per esempio. OTTIENI con url: controller / GetCustomerById? Id = {id}
Una delle differenze è che una API REST è piuttosto prevedibile. Se conosci REST e conosci il nome della risorsa che desideri (ad es. Cliente), puoi immediatamente entrare e utilizzare il controller REST con i verbi standard.
Con un approccio RPC, è necessario sapere quali sono i metodi sul controller, il tipo di argomenti che utilizzano, ecc. Queste firme possono variare da controller a controller, da app a app.
D'altra parte, AJAX è solo un modo asincrono di collocare le suddette richieste, sia come chiamata REST che come chiamata RPC.

    
risposta data 25.07.2013 - 08:52
fonte

Leggi altre domande sui tag