Domanda

Qual è il set minimo di verbi HTTP che un server dovrebbe consentire a un servizio Web di essere classificato come RESTful?

Che cosa succede se il mio hoster non consente PUT e ELIMINA ?

È davvero importante, posso vivere per sempre felicemente solo con OTTIENI//em> e POST ?


Aggiornamento: Grazie per la risposta gente, La risposta di Roger è stata probabilmente la migliore grazie al collegamento con l'intervista di Bill Venners ed Elliotte Rusty Harold. Ora capisco.


È stato utile?

Soluzione

Sì, puoi vivere senza PUT e DELETE.

Questo articolo spiega perché: http://www.artima.com/lejava/articles/why_put_and_delete.html

Mentre per i veri RESTafriani questa può essere un'eresia, nel mondo reale fai quello che puoi, con quello che hai. Sii il più razionale possibile e coerente con la tua convenzione, ma puoi sicuramente costruire un buon sistema RESTful senza P e D.

rp

Altri suggerimenti

Puoi anche usare X-Http-Verb-Override: DELETE inst. di HTTP DELETE. Questo è utile anche per i clienti Silverlight che non possono cambiare i verbi HTTP e supportano solo GET e POST ...

Se usi semplicemente GET e POST, è comunque RESTful. Il tuo servizio web può fare solo cose che richiedono solo GET o POST, quindi va bene.

REST consente di interrompere la convenzione del protocollo se le implementazioni del protocollo sono interrotte (in modo che le uniche cose non standard che fai siano aggirare le parti rotte dell'implementazione). Quindi è consentito all'interno di REST utilizzare qualche altro metodo per rappresentare verbi generalmente non supportati come DELETE o PUT.

modifica: ecco una citazione da Fielding, che è quello che ha creato e definito REST:

  

Un'API REST non deve contenere alcuna modifica ai protocolli di comunicazione a parte la compilazione o la correzione dei dettagli di bit non specificati di protocolli standard, come il metodo PATCH di HTTP o il campo dell'intestazione Link. Le soluzioni alternative per implementazioni non funzionanti (come quei browser abbastanza stupidi da credere che HTML definisca il set di metodi HTTP) dovrebbero essere definite separatamente, o almeno in appendici, con l'aspettativa che la soluzione alternativa alla fine sarà obsoleta. [Il fallimento qui implica che le interfacce delle risorse sono specifiche dell'oggetto, non generiche.]

I browser Web di oggi gestiscono solo GETS + POSTS. In Rails, ad esempio, PUTS + DELETES sono "falsi" attraverso i campi dei moduli nascosti.

A meno che il tuo framework non abbia qualche soluzione alternativa a " support " METTE + CANCELLA, non preoccuparti per loro per ora.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow