javascript - Restangular 中的 RESTful 乐观锁定

标签 javascript rest restangular etag optimistic-locking

我有 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/

相关文章:

javascript - 一个<选项>有多个值

javascript - 强制 DOM 在更改对工厂模型的 $scope 模型引用时进行渲染

javascript - 我的 Angular2 代码有问题

rest - 将 WSO2 esb 与在 Tomcat 上运行的 Rest Web 服务一起使用

java - 使用 Jersey 时未生成 JSON

apache - 为拒绝服务 (DoS) 攻击返回的正确 HTTP 响应代码是什么?

javascript - 在 Angular 中,有没有办法在实例化任何 Controller 或指令之前但在引导应用程序之后执行一些初始逻辑?

javascript - 使用 reangular 计算冗余

javascript - 对象 HTMLcollection[0] 不断返回未定义

javascript - SharePoint 在单击时传递文本框的值以更新列表列