Puoi trovare la teorizzazione di interi articoli quando dovresti usare cosa METHOD
in quale caso limite.
Si tratta principalmente di questo; ogni azione deve essere semplificata in soli quattro gusti (GET, POST, PUT, DELETE) - e questo spesso non è sufficiente per essere espressivi.
Soprattutto se si guarda al design guidato da domini, questo non è adatto. Direi che ogni sviluppatore che cerca di calzare tutto il suo codice in questi metodi (nel loro codice Java) avrà dei brutti momenti durante le revisioni del codice. Devi chiaramente avere la documentazione per essere veramente sicuro di cosa sta succedendo.
/employees/active/john-doe (DELETE)
ELIMINA significa CANCELLARE la risorsa, o ELIMINARE (rimuoverla) dalla lista 'attiva'?
/employees/active/john-doe/remove-from-active
sarebbe molto più espressivo. Chiunque utilizzi questo metodo sarà sicuro di non eliminare accidentalmente questo dipendente. POST, GET, a chi importa - purché siamo autorizzati.
Probabilmente alcune persone teorizzeranno che il primo URL non è comunque espressivo, ma cosa aggiungerebbe realmente il metodo DELETE
? Se l'URL su se stesso è espressivo - non è il DELETE
metodo informazioni duplicate (non DRY )?
C'è qualcosa di sbagliato nell'essere pragmatico e usare sempre il POST?
Da un po 'di tempo uso solo i metodi POST per tutte le mie chiamate Ajax. Tranne alcuni problemi di memorizzazione nella cache, non vedo alcun problema.
Anche se preferirei abbandonare il Metodo, penso ci sia in realtà una più chiara distinzione tra GET
e POST
, perché GET esprime nessun effetto collaterale .
Mi manca qualcosa o siamo (come comunità internet) che abbracciamo il design del legacy solo perché è già lì e siamo bloccati con esso?
Ci sono buoni argomenti che Http Method
sia un 'buon design', oltre al fatto che dovremmo attenerci alle convenzioni già presenti?