Come dovrebbe un'API REST gestire PUT quando mancano i parametri?

0

Ho un elenco di utenti che vengono assegnati a un determinato ufficio. Io uso le checkbox per selezionare ogni utente e quando il client ha finito, viene eseguito un PUT:

PUT offices/:id

users[0] : 14
users[1] : 12
users[2] : 25

Il problema si verifica quando il server ha salvato gli utenti, ma il client decide di svuotare la scheda. Quindi deseleziona gli utenti e colpisce salva. Il problema in questo caso è che la richiesta Ajax non sta inviando un parametro users[0] : vuoto, perché ogni casella di controllo è deselezionata.

Nel caso in cui un parametro non sia incluso, PUT dovrebbe sovrascriverlo e impostarlo su null o la richiesta includere il parametro vuoto in qualche modo?

    
posta Ted B. 24.07.2014 - 21:31
fonte

1 risposta

3

La risposta è nella RFC che descrive il metodo PATCH :

In a PUT request, the enclosed entity is considered to be a modified version of the resource stored on the origin server, and the client is requesting that the stored version be replaced. With PATCH, however, the enclosed entity contains a set of instructions describing how a resource currently residing on the origin server should be modified to produce a new version.

Quindi, PUT richiede di inviare la rappresentazione completa della risorsa, mentre PATCH può prendere una versione incompleta, o semplicemente alcuni comandi su come applicare la patch. Questo dipende dalla specifica implementazione dell'API.

Quindi nel tuo caso in realtà vuoi utilizzare PATCH e non PUT .

    
risposta data 25.07.2014 - 12:52
fonte

Leggi altre domande sui tag