【问题标题】:RESTful optimistic locking in RestangularRestangular 中的 RESTful 乐观锁定
【发布时间】:2015-09-01 10:07:20
【问题描述】:

我有restful api,客户端首先从资源中加载实体集合

GET http://wherever/api/tasks

然后想从该集合中删除特定任务

DELETE http://wherever/api/tasks/42

为了防止意外删除并发更新,只有在实体加载后没有被修改时,删除才会成功。我们想使用乐观锁定来解决这个问题。

如何通过 REST API 传递当前/预期版本?

Apparently,RESTful 的最佳实践是通过 ETags 传递版本(大概是为了利用与 HTTP 缓存的协同作用),但是如果实体是从不同的 URL 加载的而不是从中删除,我该怎么做呢? (我想避免为每个单独的任务发出 GET,因为查找任务集合与查找它们的状态一样昂贵)

我们在客户端使用 Restangular,在服务器端使用 Jersey。

【问题讨论】:

    标签: javascript rest restangular etag optimistic-locking


    【解决方案1】:

    根据this issue,您的 API 必须将 eTag 作为集合中返回对象的属性发送,并且当您收到响应时,将其附加到元素的 restangularEtag 属性。

    【讨论】:

      猜你喜欢
      • 2013-08-12
      • 1970-01-01
      • 2010-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-22
      相关资源
      最近更新 更多