2012-06-04 8 views
7

Uso sempre HttpGet o HttpPost anche quando la mia azione sta eseguendo un metodo di eliminazione sul database.Quando dovrei usare HttpDelete o HttpPut in un'applicazione asp.net mvc

Per cosa dovrei usare HttpDelete/HttpPut?

+0

È davvero possibile google. Rispondere alla tua domanda: puoi sempre usare la posta per cambiare i dati. Non c'è una reale necessità di usare Put e Delete. la maggior parte delle applicazioni non li usa. – gdoron

+1

Un consiglio: su una rete pubblica dove possono arrivare gli spider di ricerca - ogni Get viene attivato mentre Post non lo è. Quindi, se puoi inviare una richiesta Ottieni per manipolare i dati, fai attenzione a quanto è visibile il link. FWIW – LosManos

+0

http://prideparrot.com/blog/archive/2011/10/using_http_methods_in_rest – VJAI

risposta

2

Se si crea un servizio OData.

HTTP DELETE - Elimina i dati di entità che rappresenta la risorsa specificata. Un payload non è presente nei messaggi di richiesta o di risposta.

HTTP PUT - Sostituisce i dati di entità esistenti nella risorsa richiesta con i nuovi dati forniti nel carico utile del messaggio di richiesta. (msdn)

C'è a presentation with Scott Hanselman che potrebbe essere interessante. (Non l'ho ancora visto)

C'è anche a couple of lectures on pluralsight su OData se si ha un abbonamento lì.

14

I browser Web supportano solo GET e POST, quindi se si sta creando un sito Web, non è necessario PUT o DELETE. Se stai costruendo un api RESTful, però, PUT e DELETE sono la strada da percorrere se vuoi che i tuoi utenti siano in grado di mettere e/o cancellare cose.

EDIT: Sembra che i browser supportino DELETE e PUT nelle loro implementazioni di XMLHttpRequest. Quindi puoi usarli nelle richieste Ajax. I moduli HTML, tuttavia, non li supportano.

2

Immagino tu abbia capito l'uso della richiesta DELETE ma PUT è una cosa leggermente diversa.

Se sto creando una nuova risorsa nel server e se l'URI attraverso il quale è possibile accedervi è deciso da me, quindi andrò per PUT. Nella maggior parte dei casi l'URI viene deciso dal server e quindi POST go per la creazione e PUT in genere per l'aggiornamento.

ultima cosa è, come GET sia DELETE e PUT sono idempotente, significa quante volte il cliente inviare le richieste in serie lo stato del server dovrebbe essere modificata per lo stesso come nella prima richiesta.