如何防止重复API请求创建重复资源?

如何防止重复API请求创建重复资源?,api,restful-architecture,Api,Restful Architecture,说两个相同的请求同时到达,如何防止在服务器端创建重复资源 例如,如果一个用户想要将一件事情标记为他最喜欢的事情,如何避免计算两次 锁似乎太重了,无法执行此类操作。要更新资源的状态,可以使用或之类的条件头。它们使请求以自请求者上次获得副本以来未修改的资源状态为条件 如果要创建与现有资源相关的新资源,则在请求创建新资源时,可以使用以确保现有资源的本地副本是最新的 在这两种情况下,仍然需要某种锁定机制,但它将完全存在于服务器端,并且可能直接存在于数据库中,具体取决于您的实现细节 如果希望创建的新资源在

说两个相同的请求同时到达,如何防止在服务器端创建重复资源

例如,如果一个用户想要将一件事情标记为他最喜欢的事情,如何避免计算两次


锁似乎太重了,无法执行此类操作。

要更新资源的状态,可以使用或之类的条件头。它们使请求以自请求者上次获得副本以来未修改的资源状态为条件

如果要创建与现有资源相关的新资源,则在请求创建新资源时,可以使用以确保现有资源的本地副本是最新的

在这两种情况下,仍然需要某种锁定机制,但它将完全存在于服务器端,并且可能直接存在于数据库中,具体取决于您的实现细节

如果希望创建的新资源在某些属性上是唯一的,则需要确保后端的唯一性。同样,这是服务器端的某种锁定机制