In genere, lo fai in due modi
Nel mondo dell'HTML, le operazioni non sicure sono state descritte dai moduli e la descrizione del modulo potrebbe includere suggerimenti per il client su quali possibili valori erano previsti.
In un mondo in cui stai manipolando le rappresentazioni delle risorse direttamente, questo è normalmente ottenuto documentando uno schema per la rappresentazione e all'interno di quello schema che documenta le restrizioni sulle informazioni contenute all'interno.
Ad esempio, la specifica Patch JSON documenta ciò che operazioni sono supportate. Attaccare qualsiasi altra cosa significa che non stai fornendo un documento application/json-patch+json
valido.
Ma se sto leggendo il tuo esempio correttamente, quello che stai cercando di fare è permettere al client di guidare alcune risorse allo stato successivo di un FSM. Per quanto posso dire, nessuno sta sostenendo che è una buona misura per il verbo PUT
Clients should never decide the current state of an entity, instead, they should request transitions of that entity to the desired state. -- Richard Clayton
PUT (e allo stesso modo PATCH ) si adattano bene all'authoring remoto: situazioni in cui il client è l'autorità per le informazioni e invia semplicemente al server una copia memorizzabile nella cache. Non è adatto per manipolare le risorse in cui il server, piuttosto che il client, è la fonte della verità.