2013-07-25 21 views
7

Sto leggendo un libro Javascript in cui parla di servizi Web ma trovo difficile comprendere la frase seguente come un inconveniente dell'utilizzo di REST (Representational State Transfer).Importante inconveniente del servizio web REST

Uno dei maggiori svantaggi ad usare REST è che alcuni browser supportano solo metodi GET e POST, mentre molti firewall consentono passaggio dei soli metodi GET e POST.

Non vedo davvero come questo sia considerato un inconveniente. L'inglese non è la mia 1a lingua, quindi potrebbe essere solo io a trovarla difficile.

Qualcuno può elaborare su questo?

+2

Questo è scritto male. Non è che GET e POST siano svantaggi di tutti i servizi REST; è che se il servizio REST utilizza metodi diversi da GET e POST, potrebbe soffrire a causa del supporto del browser scarso per quegli altri metodi. –

+0

Sono d'accordo. La tua spiegazione è più comprensibile di ciò che è scritto nel mio libro .. –

risposta

4

REST supporta i metodi PUT e DELETE nonché GET e POST, quindi se l'app deve essere eseguita in un browser, il limite è limitato.

La convenzione è quello di utilizzare GET per recuperare informazioni, POST per creare nuovo oggetto/soggetto, PUT per aggiornare un oggetto/soggetto esistente e DELETE per eliminare ...

+0

Downvoter - cura di commentare? – alfasin

1

Si tratta di un inconveniente in quanto se l'applicazione si basa su richieste DELETE o PUT che non tutti i client o configurazioni di rete supporteranno, il che significa che ci saranno situazioni in cui potresti non essere in grado di distribuirlo (senza soluzioni alternative).

Non sono sicuro se questo rimane un problema reale, tuttavia, ed è facilmente risolvibile avendo alcune richieste di riscrittura dei filtri per i client che non possono emettere DELETE o PUT.

1

Bene I servizi Web REST utilizzano i metodi di richiesta HTTP: POST, GET, DELETE, PUT. Questo significa che i metodi PUT e DELETE HTTP Request non sono supportati. È un vantaggio, ma ci sono modi per aggirarlo manipolando i DTO. Ciò tuttavia vorrà dire che non segui l'approccio REST completo.

2

Il servizio Web restful utilizza in genere molti dei metodi definiti nella specifica Http. Quindi, i metodi Create utilizzano Post Http, i metodi di lettura utilizzano Http Get, i metodi di aggiornamento Http Put, i metodi Delete utilizzano Http Delete. Vedi http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html e Which HTTP methods match up to which CRUD methods?.

La preoccupazione sollevata nel libro è che Put and Delete potrebbe non essere utilizzabile tramite firewall o in alcuni browser. Non so se questa è una preoccupazione valida. Penso che l'infrastruttura di Internet oggi gestisca abbastanza bene questa roba.

La metodi CRUD Stack Overflow articolo di cui sopra comprende un commento utile:

E poiché PUT e DELETE non sono ancora supportati dai browser web, è considerato bene per "sovraccarico POST" con l'aggiunta di una query argomento stringa come metodo = PUT o metodo = DELETE sull'URI in fase di POST