Se esegui google "aggiornamento parziale REST" riceverai molte opinioni.
Detto questo ti darò i miei pensieri.
Un PUT dovrebbe essere usato per un aggiornamento completo di una risorsa, quindi cambiando solo un parametro con il POSTing su / purchase_order / 1 un risultato recente di GET to / purchase_order / 1 con il campo dello stato cambiato da bozza a inviato .
Un'altra opzione sarebbe quella di inviare un PUT a / purchase_order / 1 / status con un valore di inviato, che potrebbe quindi essere interpretato sul lato server come aggiornamento allo stato di sub-risorsa della risorsa purchase_order. Potresti anche restituire 303 indicando la risorsa / purchase_order / 1 per far sapere al client che una risorsa diversa da quella con cui hanno interagito è cambiata e dove trovare quella risorsa.
Potresti considerare il verbo PATCH, ma se segui correttamente la semantica, non dovresti semplicemente inviare lo stato richiesto, ma piuttosto un tipo di contenuto che specifichi che elenca un insieme di operazioni che desideri applicare.
Se un'azione ha effetti collaterali, è necessario chiarirla nella propria API. Quindi fai attenzione quando usi PUT, che è progettato per essere idempotente.