为什么在POST执行相同操作时使用PUT?特别是在Laravel

时间:2019-07-17 12:44:41

标签: rest api post put

我知道HTTP方法的优势。我也知道REST API中专门使用了什么PUT和POST。但是问题是为什么在POST进行相同操作时为什么要使用PUT。

以Laravel(PHP Framework)为例,在Laravel中我们伪造了POST用作PUT方法来更新数据,例如更改项目名称。问题是我们可以执行相同的操作,即使用POST方法更新项目名称而不将其伪造为PUT,然后为什么使用PUT?

1 个答案:

答案 0 :(得分:0)

http调用PUT /products/{id}幂等,即:每个后续相同的调用都进行了相同的修改,并且可以多次调用,并具有相同的结果。

http调用POST /products 幂等,也就是说,每个后续的相同调用都应创建产品资源的新子项。

PUT 用于更新现有资源, POST 用于创建新资源。

请注意,如果您想 REST 兼容(如Laravel尝试做的那样),则应使幂等 GET PUT ,< strong> DELETE , HEAD OPTIONS TRACE HTTP方法,但不是 POST 方法。

Laravel可让您使用_method参数伪造HTML表单中的 PUT 方法调用,因为您无法通过浏览器发出 PUT 请求。 但是,要遵循 REST 原则,Laravel能够响应假的 PUT 调用(来自浏览器),也可以响应来自其他程序的相同路径的真实PUT方法。