Usa gli URL per specificare i tuoi oggetti, non le tue azioni:
Nota ciò che hai menzionato per la prima volta non è RESTful:
/questions/show/<whatever>
Invece, dovresti usare i tuoi URL per specificare i tuoi oggetti:
/questions/<question>
Quindi esegui una delle operazioni seguenti su quella risorsa.
OTTENERE:
Utilizzato per ottenere una risorsa, interrogare un elenco di risorse e anche per richiedere informazioni di sola lettura su una risorsa.
Per ottenere una risorsa per le domande:
GET /questions/<question> HTTP/1.1
Host: whateverblahblah.com
Per elencare tutte le risorse per le domande:
GET /questions HTTP/1.1
Host: whateverblahblah.com
INVIARE:
Utilizzato per creare una risorsa.
Tieni presente che il seguente è un errore:
POST /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
Se l'URL non è ancora stato creato, non dovresti usare POST per crearlo mentre specifichi il nome. Ciò dovrebbe causare un errore di risorsa non trovata perché non esiste ancora. Dovresti prima METTERE la risorsa sul server. Potresti sostenere che creando una nuova domanda, stai anche aggiornando la risorsa / questions poiché ora restituirebbe un'altra domanda nel suo elenco di domande.
Dovresti fare qualcosa di simile per creare una risorsa usando POST:
POST /questions HTTP/1.1
Host: whateverblahblah.com
Notare che in questo caso il nome della risorsa non è specificato, verrà restituito il percorso dell'URL del nuovo oggetto.
ELIMINA:
Utilizzato per eliminare la risorsa.
DELETE /questions/<question> HTTP/1.1
Host: whateverblahblah.com
METTERE:
Utilizzato per creare una risorsa o sovrascriverla mentre si specifica l'URL delle risorse.
Per una nuova risorsa:
PUT /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
Per sovrascrivere una risorsa esistente:
PUT /questions/<existing_question> HTTP/1.1
Host: whateverblahblah.com
... Sì, sono la stessa cosa. PUT è spesso descritto come il metodo di "modifica", poiché sostituendo l'intera risorsa con una versione leggermente modificata, hai modificato ciò che i client OTTERRANNO quando lo faranno.
Utilizzo di REST nei moduli HTML:
La specifica HTML5 definisce GET e POST per l'elemento del modulo .
L'attributo del contenuto del metodo è un attributo enumerato con le seguenti parole chiave e stati:
- La parola chiave GET, mappata allo stato GET, che indica il metodo HTTP GET.
- La parola chiave POST, mappata allo stato POST, che indica il metodo HTTP POST.
Tecnicamente, la specifica HTTP non ti limita solo a questi metodi. Sei tecnicamente libero di aggiungere tutti i metodi che desideri, ma in pratica non è una buona idea. L'idea è che tutti sappiano che usi GET per leggere i dati, quindi confonderebbe le cose se decidi di usare invece READ. Detto ciò...
PATCH:
Questo è un metodo definito in un RFC formale. È progettato per essere utilizzato quando si desidera inviare solo una modifica parziale a una risorsa, sarebbe usato in modo molto simile a PUT:
PATCH /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
La differenza è che PUT deve inviare l'intera risorsa, non importa quanto sia grande rispetto a ciò che è effettivamente cambiato, mentre PATCH puoi inviare solo le modifiche.