Rest 如果后端为';不允许复制?

Rest 如果后端为';不允许复制?,rest,post,unique,idempotent,Rest,Post,Unique,Idempotent,通常POST不是幂等的。 但是让我们考虑一下POST方法发送用户/密码/密码,后端应用程序注册一个新用户的情况。 用户是唯一的,这就是为什么相同的POST方法(使用相同的数据)不会影响服务器。不会第二次创建新用户。在这种情况下,POST方法是否是幂等的?HTTP POST方法按标准定义实际上是不幂等的。然而,POST将始终基于实际的后端服务器实现,它将是幂等的 显然,REST不是一个严格的标准,而是一个关于如何构建RESTful API的指南 至于您的具体情况,是的,POST方法是幂等的 不会第

通常POST不是幂等的。 但是让我们考虑一下POST方法发送用户/密码/密码,后端应用程序注册一个新用户的情况。
用户是唯一的,这就是为什么相同的POST方法(使用相同的数据)不会影响服务器。不会第二次创建新用户。在这种情况下,POST方法是否是幂等的?

HTTP POST方法按标准定义实际上是不幂等的。然而,POST将始终基于实际的后端服务器实现,它将是幂等的

显然,REST不是一个严格的标准,而是一个关于如何构建RESTful API的指南

至于您的具体情况,是的,POST方法是幂等的

不会第二次创建新用户。在这种情况下,POST方法是否幂等

那个后处理程序是幂等的吗?是的,听起来像是。当然可以

也就是说;通用客户机不会知道这个特定的处理程序碰巧有一个幂等实现。统一接口的要点是消息语义和相应的保证在任何地方都是相同的

一般用途的客户机不能假定您的后处理程序是幂等的,因为声明我的后处理程序不必是幂等的


那么,如果我的数据库不允许重复,我该怎么办?我必须打破标准,对吗

不,你现在做的很好,没有违反标准。该标准并不禁止POST的实现是幂等的;它说客户端不能假设操作是幂等的


在这方面,它与“安全”完全类似:标准没有承诺POST请求是安全的,因此不允许客户端假设它们是安全的。但是,我们仍然可以使用POST来处理安全请求,这就是为什么我们可以使用POST来处理SOAP/GraphQL查询。

为什么不能?通常它不是幂等的,但在我的特殊情况下,它不会第二次创建实体,只有第一次调用影响系统(类似于get,put)。这就是它变为幂等的原因。那么,如果我的数据库不允许重复,我该怎么办呢?我必须打破标准,对吗?