Ich habe eine optimistische Sperrung für meine REST-Ressourcen implementiert, die eine 1-zu-1-Zuordnung zu Datenbanktabellen haben, indem eine Versionsnummer, die im GET zurückgegeben wurde, an den PUT-Aufruf zurückgegeben wird. Wenn sich die Versionsnummer in der Datenbank zwischen dem Zeitpunkt, an dem ich das GET und das PUT abschloss, geändert hat, ist eine optimistische Sperrenausnahme aufgetreten. Ziemlich einfaches Design.Wie implementieren Sie eine grobkörnige optimistische Sperre in REST?
Wie mache ich das Gleiche für zusammengesetzte REST-Ressourcen, die mehreren Datenbanktabellen zugeordnet sind? Ich möchte nicht mehrere Versionsfelder zurückgeben müssen (eines für jede Datentabelle, die sich auf die zusammengesetzte Ressource bezieht). Ein vereinfachtes Beispiel für eine zusammengesetzte Ressource wäre/FooBar, wobei/Foo und/Bar nicht zusammengesetzte Ressourcen sind.
ich im Grunde bin für ein Beispiel für den REST Implementierung von Fowler grobkörnigem Locking Muster suchen: http://martinfowler.com/eaaCatalog/coarseGrainedLock.html
In Ihrem REST-Service können Sie nur die Versionen sammeln und sie in eine Map einfügen, die durch eine eindeutig generierte ID codiert wird, die die Version darstellt? Dann senden Sie das an den Client und lassen Sie es nach einer Bearbeitung an Sie zurücksenden? Dann können Sie diese eine ID verwenden, um die Versionen für den Graphen von Entitäten zu erhalten. –