Ho implementato il blocco ottimistico per le mie risorse REST che hanno un mapping 1-a-1 alle tabelle di database restituendo un numero di versione che era nel GET indietro fino alla chiamata PUT. Se il numero di versione è cambiato nel database tra il momento in cui ho eseguito GET e PUT, si è verificata un'eccezione di blocco ottimistico. Design abbastanza semplice.Come si implementa un blocco ottimistico a grana grossa in REST?
Ora, come faccio a fare lo stesso per le risorse composite REST che si associano a più tabelle di database? Mi piacerebbe non dover passare indietro più campi di versione (uno per ogni tabella di dati che si riferisce alla risorsa composita). Un esempio semplicistico di una risorsa composita sarebbe/FooBar dove/Foo e/Bar sono risorse non composite.
praticamente sto cercando un esempio di Implementazione REST del modello di grana grossa di chiusura di Fowler: http://martinfowler.com/eaaCatalog/coarseGrainedLock.html
Nel servizio REST è possibile raccogliere le versioni e inserirle in una mappa che è codificata da un ID generato in modo univoco che rappresenta la versione? Quindi inviarlo al cliente e chiedergli di rispedirlo dopo una modifica? Quindi puoi usare quell'id per ottenere le versioni per il grafico delle entità. –