REST是否应该实现并发控制以控制对资源的几乎同时的修改?
例如,想象一下一个像Wiki一样的应用程序,用户在其中读、写和编辑文章。现在假设用户Bob和用户Mary同时修改同一篇文章,但是Bob更新文章的速度比Mary快,并且提交了他的更改。当玛丽提交她的更改时,她会覆盖Bob的更改。这对Bob来说是个坏消息,因为他的更改丢失了。
避免这种情况的最好方法是什么?这方面通常使用什么技术?
发布于 2019-12-02 23:34:11
在一般情况下,有条件请求。
简短版本:您将验证器与先决条件报头结合起来,以确保“第一作者获胜”语义。对资源的不安全请求包括对预期版本的引用。如果在处理请求时资源不在预期版本上,则会得到一个412先决条件失败响应,然后选择适当的补救措施。
特别适用于共享的创作场景,如您所描述的?您可能需要查看无冲突复制数据类型(CRDT)。克莱普曼博士的演讲相当平易近人:你可以从后藤2016年的这篇文章开始,或者找他的书“设计数据密集型应用程序”。
https://stackoverflow.com/questions/59147569
相似问题