Tôi đã thực hiện khóa lạc quan cho các tài nguyên REST của tôi có ánh xạ 1 đến 1 cho các bảng cơ sở dữ liệu bằng cách trả về một số phiên bản trong GET trở lại cuộc gọi PUT. Nếu số phiên bản thay đổi trong cơ sở dữ liệu giữa thời gian tôi đã thực hiện GET và PUT, thì một ngoại lệ khóa lạc quan đã xảy ra. Thiết kế khá đơn giản.Làm cách nào để bạn triển khai khóa lạc quan hạt mịn trong REST?
Bây giờ, làm cách nào để làm tương tự cho các tài nguyên REST tổng hợp ánh xạ tới nhiều bảng cơ sở dữ liệu? Tôi không muốn phải trả lại nhiều trường phiên bản (một cho mỗi bảng dữ liệu có liên quan đến tài nguyên tổng hợp). Một ví dụ đơn giản của một tài nguyên tổng hợp sẽ là/FooBar trong đó/Foo và/Bar là các tài nguyên không phải là tổng hợp.
tôi về cơ bản tìm kiếm một ví dụ về implemetation REST của mô hình hạt thô Khóa Fowler: http://martinfowler.com/eaaCatalog/coarseGrainedLock.html
Trong dịch vụ REST của bạn, bạn có thể thu thập các phiên bản và đưa chúng vào một Bản đồ được khóa bởi một id được tạo duy nhất đại diện cho phiên bản không? Sau đó gửi cho khách hàng và yêu cầu họ gửi lại cho bạn sau khi chỉnh sửa? Sau đó, bạn có thể sử dụng một id đó để lấy các phiên bản cho đồ thị của các thực thể. –