对PATCH请求的响应

时间:2017-09-25 14:28:32

标签: rest http django-rest-framework api-design

假设我有一个端点/api/todos,我发出PATCH请求来更改其中一个待办事项。我的PATCH请求在响应正文中包含所有待办事项列表是否有意义?

我可以阅读有关此的任何规范吗?

我与一些开发人员进行了交谈,普遍的共识是PATCH方法应该只返回更改的条目。我同意这一点,但我正在寻找详细说明这一点的文件。

2 个答案:

答案 0 :(得分:3)

RFC是here

但它并没有真正指明任何东西。这是一个例子:

   Successful PATCH response to existing text file:

   HTTP/1.1 204 No Content
   Content-Location: /file.txt
   ETag: "e0023aa4f"

   The 204 response code is used because the response does not carry a
   message body (which a response with the 200 code would have).  Note
   that other success codes could be used as well.

所以你可以按照自己的意愿实施它。仅使用更改的条目进行响应将更加符合其他方法(PUT,DELETE等)的处理方式,因此我会这样做。

答案 1 :(得分:0)

因此,当您想要提供RESTfull api /api/todos代表一个ressource,其中每个待办事项都有一个单独的id。在这里你会修补,例如到`/ api / todos / 4'更新id为4的待办事项。 这里通常的行为是使用204状态代码或更新的对象进行响应,以保存另一个请求以获取更新的待办事项。

如果您的待办事项不是具有身份证明的单独对象,则它们可能是一个项目列表,应该一次性返回。