假设我有一个端点/api/todos
,我发出PATCH
请求来更改其中一个待办事项。我的PATCH
请求在响应正文中包含所有待办事项列表是否有意义?
我可以阅读有关此的任何规范吗?
我与一些开发人员进行了交谈,普遍的共识是PATCH
方法应该只返回更改的条目。我同意这一点,但我正在寻找详细说明这一点的文件。
答案 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状态代码或更新的对象进行响应,以保存另一个请求以获取更新的待办事项。
如果您的待办事项不是具有身份证明的单独对象,则它们可能是一个项目列表,应该一次性返回。