1)前端将进行GET调用以检查用户是否已存在。进行此检查后,如果该用户不存在,则前端将进行POST调用以创建该用户。
2)前端将立即进行POST调用,后端将检查用户是否存在,如果该用户存在,则将详细信息返回给前端。如果用户不存在,请创建一条记录,并将详细信息还原到前端。
根据标准,哪种方法更好?
由于您的问题带有绩效标记:
当注册有效时,仅发送POST
呼叫的第二种方法会快一点。当它无效(用户名已被占用)时,您将有一点开销,因为您发送了实际上不需要的数据。
这里的问题是:您想实现什么?如果要在用户名输入字段中显示“用户名已被使用”,则必须使用GET
请求。
如果只想显示更多(服务器端)验证,则可以拨打POST
。
不过,关于性能,我说的并不重要,我会根据您的用例选择合适的方法。
您在说什么被称为upsert操作。
据我所知,REST本身并没有真正谈论它。真正的问题在于:
如果操作执行了INSERT或只是返回了已经存在的用户,客户端是否需要知道?
也:如果客户端发送到POST
端点的用户与数据库中已经存在的用户不同,您想做什么?
相关:In REST is POST or PUT best suited for upsert operation?
这里没有客观答案。它取决于客户的要求以及您希望API的外观。