是否应通过POST或PUT发送评论编辑?

时间:2010-12-29 12:20:34

标签: http rest architecture

我有以下URI:Posts/{postId}/Comments/{commentId}
我想让用户通过我的API编辑评论,编辑是用POST还是PUT完成的? 一方面,POST更新资源的内容以使其有意义,但另一方面PUT将其替换为新的内容。因此,如果我正确理解POST,我只需要发送需要更新的内容,并且使用PUT我发送整个资源 通常在编辑表单中,无论如何都会加载整个资源,那么使用POST有什么意义呢? 如果我采取一种方法或另一种方法,有什么区别?

2 个答案:

答案 0 :(得分:2)

根据我的阅读(RESTful Web Services, published by O'Reilly),您似乎应该使用PUT更新现有评论。

  • PUT旨在用于更新和创建资源。

  • POST也可用于创建资源。这里的区别在于,当POST时,您不需要知道要创建的资源的确切URI。 (该服务将在其响应中报告新资源的URI。)

  • POST适用于部分更新,或者在向资源附加信息时; PUT适用于资源的完整更新(替换)。

  • 更新时,可以发送部分更新,但您应该确保这些更新是幂等的;即。如果您多次发送相同的更新,则更新将始终具有相同的效果。不要发送诸如“将 n 增加1”的更新;相反,发送更新,例如“将 n 设置为5”。

因此,我对你案件的建议如下:

  • 使用POST/Posts/{postId}/Comments创建新评论,因为客户提前不知道{commentId}

  • 使用PUT /Posts/{postId}/Comments/{commentId}完全更新评论(或者在向其添加文字时POST)。

答案 1 :(得分:1)

见这里: PUT vs POST in REST

相关问题