Ho un REST URI per un elenco di risorse, qualcosa come:Come aggiornare una collezione REST risorsa
http://foo.com/group/users
Ognuno di questi utenti ha un numero di sequenza e voglio esporre un modo per rinumerare quei valori per tutti gli utenti della raccolta e rendere questa modifica disponibile per tutti coloro che accedono alla lista. Poiché si tratta di un'azione sulla raccolta nel suo insieme, non sono sicuro di come farlo.
posso immaginare un URL del tipo http://foo.com/group/users?sequence=normalize
ma né un PUT
né una POST
rende davvero senso per l'intera lista, a meno che sottopongo tutta la collezione con i nuovi numeri come i dati del messaggio.
Come posso eseguire un aggiornamento a un'intera raccolta come questa in modo RESTful senza dover inviare nuovamente tutte le risorse aggiornate nella raccolta?
Questa sembra la giusta direzione, ma come gestisco se la richiesta non include tutti gli utenti correnti nell'elenco? Ad esempio: l'utente A ottiene l'elenco che contiene 50 utenti, l'utente B aggiunge un nuovo utente all'elenco, quindi A invia il 50 rinumerato in un PATCH ma non tiene conto di quel nuovo utente (o viceversa se un utente è stato cancellato). Sono preoccupato che in questo caso finiremmo con due numeri duplicati; c'è un modo per impedirlo? –
Penso che dovresti considerare di sfruttare le intestazioni HTTP 'ETag' e' If-Match' per implementare il blocco ottimitico con REST. Questo link potrebbe interessarti: https://looselyconnected.wordpress.com/2010/03/25/the-http-etag-header-and-optimistic-locking-in-rest/. Spero che ti aiuti. –