RESTful API - 忽略无效的PUT请求?

时间:2014-12-27 21:39:17

标签: api rest http request put

我为书签管理器构建了一个简单的API,其中记录的URL应该只存储一次。带有www.example.com的记录001已存在于带有www.stuff.com的记录002旁边。

如果我使用网址www.example.com更新记录002,我是否应该忽略完整的请求并发回错误消息,或者更新所有有效部分并发送错误消息,即说明网址/书签更好已经存在?

1 个答案:

答案 0 :(得分:1)

对于PUT,期望整个操作成功或失败:

  

PUT方法请求目标资源的状态      用表示定义的状态创建或替换      包含在请求消息有效负载中。一个成功的PUT      表示会建议随后对此进行GET      目标资源将导致等效表示      发送了200(OK)回复。

https://tools.ietf.org/html/rfc7231#section-4.3.4

您应该为无效的PUT发送错误(因为该URL已经存在且不能同时存在于两个记录中)并且不应用任何其他更新。

对于部分更新,您可能会考虑使用PATCH,但在这种情况下,我不认为您会这样做:

  

如果整个补丁文件      无法成功应用,那么服务器绝不能应用任何      变化。

https://tools.ietf.org/html/rfc5789

相关问题