乐观锁定:使用其他资源修改资源
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了乐观锁定:使用其他资源修改资源相关的知识,希望对你有一定的参考价值。
样本用例:用户使用实际的产品列表(资源LP /资源列表P)修改烹饪配方(资源C)。资源C和LP都可以由其他用户同时更改。列表(P)中的任何产品也可以更改。如果这些资源中的任何一个已被更改,则客户端应具有相应的错误以响应修改PUT。
问题:确保用户在更改配方时使用未更改的数据的最佳做法是什么?我们可以使用ETag(RFC 7232)方法来实施并发访问规则吗?如果没有,我们如何修改API结构或使用其他方法来实现它?我的问题是如何使用来自多个资源的ETag来强制执行RFC。
我理解在这种特殊情况下我们可以使用POST逐个添加产品等。但在现实生活中,它可能是复杂的情况,例如,考虑来自多个集合或资源的构建器。
答案
是的,请这样做!您需要将作为请求的一部分(在If-Match
标头中)传递的ETag与服务器当前表示的ETag进行比较。如果匹配,请继续并更新该值。如果他们不这样做,返回412 Precondition Failed
。
以上是关于乐观锁定:使用其他资源修改资源的主要内容,如果未能解决你的问题,请参考以下文章