我有 restful api,其中客户端首先从资源加载实体集合
GET http://wherever/api/tasks
然后想从那个集合中删除一个特定的任务
DELETE http://wherever/api/tasks/42
为了防止意外删除并发更新,只有在实体加载后未被修改的情况下,删除才会成功。我们想使用乐观锁定来解决这个问题。
如何通过 REST API 传递当前/预期版本?
Apparently ,RESTful 最佳实践是通过 ETag 传递版本(大概是为了利用与 HTTP 缓存的协同作用),但是如果实体是从不同于将从中删除的 URL 加载的,我该如何做到这一点? (我想避免为每个单独的任务发出 GET,因为查找任务集合与查找它们的状态一样昂贵)
我们在客户端使用 Restangular,在服务器端使用 Jersey。
最佳答案
根据 this issue您的 API 必须将 eTag 作为集合中返回对象的属性发送,并且当您收到响应时,将其附加到元素的 restangularEtag 属性。
关于javascript - Restangular 中的 RESTful 乐观锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30870124/