我知道HTTP方法的优势。我也知道REST API中专门使用了什么PUT和POST。但是问题是为什么在POST进行相同操作时为什么要使用PUT。
以Laravel(PHP Framework)为例,在Laravel中我们伪造了POST用作PUT方法来更新数据,例如更改项目名称。问题是我们可以执行相同的操作,即使用POST方法更新项目名称而不将其伪造为PUT,然后为什么使用PUT?
答案 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方法。