Chr*_*s B 4 rest concurrency json http rfc
RFC 6902 中的删除操作允许您从 JSON 对象的数组中删除元素,但也更改所有其他元素的数组索引。
如果您使用 GET 检索记录,然后使用 PATCH 从数组中删除一个元素,是否存在其他人可能已删除该数组中的不同元素的风险,这可能会更改您要删除的项目的索引? 这会不会导致您不小心从数组中删除了错误的项目?
我是否错误地使用了它,或者使用 PATCH 从数组中删除元素是否需要某种乐观锁定才能可靠地运行?
您正在描述并发问题。您应该对 ETag 使用乐观并发方法来执行有条件的 PATCH 操作。
http://fideloper.com/etags-and-optimistic-concurrency-control
基本上,客户端首先使用 ETag 获取资源的表示,该 ETag 将是内容的校验和。当您想要执行 PATCH 操作时,您可以附加一个If-Match
带有先前 ETag 作为值的HTTP 标头。如果数据在你读取之后没有改变,服务器将接受操作并返回 HTTP 200。如果数据改变了,服务器将返回 HTTP 412 Precondition Failed 表明请求试图修改的数据已经改变了.
归档时间: |
|
查看次数: |
864 次 |
最近记录: |