我想知道我是否应该使用POST或PUT进行API调用。
后端将创建或更新数据库中的现有行。我知道我使用POST进行创建和PUT进行更新,但是当我不知道哪一个会被创建/更新时,我应该使用什么?
答案 0 :(得分:3)
我不认为创建/更新区别是在PUT和POST之间做出决定的最佳方式。这由rest cook book:
备份HTTP方法POST和PUT不是CRUD创建和更新的HTTP等价物。
我建议您阅读该文章,但由于其中一些评论说它们没有得到它,我会尝试以另一种方式解释。
听起来你的请求是幂等的,并且你知道资源预先存在的确切URL,所以我认为你应该使用PUT。
正如Rest烹饪书中所表达的那样,将PUT用于资源创建和更新是完全可以的。
如果您可以使用PUT,那么您应该因为它为客户提供有关该服务的更多信息。例如,PUT请求的容错,弹性和分发要容易得多,因为您不关心同一请求是否多次发生。构建发出POST请求的容错应用程序可能有点棘手,因为您必须确保请求只发生一次。实现重试逻辑也比PUT更容易,因为你不关心请求失败的地方,你可以因为幂等性而重新尝试。
实现POST的重试有点困难,因为客户端不确定请求是否成功,并且必须假设发出多个POST请求可能会造成损害。
答案 1 :(得分:0)
使用 PUT api调用。 POST 主要用于创建数据。
答案 2 :(得分:0)
如果您不知道要使用什么,请使用POST。如果您不太确定,请参阅:http://restcookbook.com/HTTP%20Methods/put-vs-post/