Json 在REST服务中使用RFC 6902修补程序从阵列中删除对象。您如何知道正在删除正确的元素?

Json 在REST服务中使用RFC 6902修补程序从阵列中删除对象。您如何知道正在删除正确的元素?,json,rest,http,concurrency,rfc,Json,Rest,Http,Concurrency,Rfc,中的删除操作允许您从JSON对象中的数组中删除元素,但也会更改所有其他元素的数组索引 如果使用GET检索记录,然后使用PATCH从数组中删除元素,是否存在其他人删除该数组中不同元素的风险,这可能会更改要删除的项的索引?这是否会导致您从阵列中意外删除错误的项 我是否使用了错误的方法,或者使用补丁从数组中删除元素是否需要某种乐观锁定才能可靠地工作?您正在描述一个并发问题。您应该对ETag使用乐观并发方法来执行条件补丁操作 基本上,客户机首先使用ETag获取资源的表示,ETag是内容的校验和。当您想

中的删除操作允许您从JSON对象中的数组中删除元素,但也会更改所有其他元素的数组索引

如果使用GET检索记录,然后使用PATCH从数组中删除元素,是否存在其他人删除该数组中不同元素的风险,这可能会更改要删除的项的索引?这是否会导致您从阵列中意外删除错误的项


我是否使用了错误的方法,或者使用补丁从数组中删除元素是否需要某种乐观锁定才能可靠地工作?

您正在描述一个并发问题。您应该对ETag使用乐观并发方法来执行条件补丁操作

基本上,客户机首先使用ETag获取资源的表示,ETag是内容的校验和。当您想要执行修补程序操作时,可以将
If Match
HTTP头附加到上一个ETag as值。如果数据在读取后没有更改,服务器将接受该操作并返回HTTP 200。如果数据发生更改,服务器将返回HTTP 412前提条件失败,指示请求尝试修改的数据已更改