我被要求为前端团队创建一个端点RESTfull,它将向我发送有关用户表单的信息。REST API中的PUT和POST。它们只用于语义分离吗?
有很多的场景,但我会解释只有1个来试图解决我的问题:
- 他们会送我一个包含了很多关于用户数据的数组。例如userFirstName和userLastName。我需要检查用户是否存在于数据库中。如果存在,请更新表单中发送的所有数据。如果用户不存在,请在表中创建它,然后在所有相关表内创建与新用户相关的信息。
- 如果PUT更新数据
- 后,如果插入数据
我一定要告诉他们什么动词:
因此,在这种情况下创建一个端点时,我们可以有两种可能性他们应该在调用我的端点时使用,如果是PUT或POST。 我可以给他们POST并在这个过程中做一些更新,或者我可以给他们一个PUT并做一些INSERT。
基于RESTfull标准,不应该这样做。但除了最佳实践标准(要语义化)之外,还有其他限制需要评估吗?
“任何其他约束要评估” - 我不这么认为。两者都会完成这项工作。看来,你在这里不可能是纯洁的。所以只需选择一个并使用它。我建议POST更“通用”。 –