我为书签管理器构建了一个简单的API,其中记录的URL应该只存储一次。带有www.example.com的记录001已存在于带有www.stuff.com的记录002旁边。
如果我使用网址www.example.com更新记录002,我是否应该忽略完整的请求并发回错误消息,或者更新所有有效部分并发送错误消息,即说明网址/书签更好已经存在?
答案 0 :(得分:1)
对于PUT,期望整个操作成功或失败:
PUT方法请求目标资源的状态 用表示定义的状态创建或替换 包含在请求消息有效负载中。一个成功的PUT 表示会建议随后对此进行GET 目标资源将导致等效表示 发送了200(OK)回复。
https://tools.ietf.org/html/rfc7231#section-4.3.4
您应该为无效的PUT发送错误(因为该URL已经存在且不能同时存在于两个记录中)并且不应用任何其他更新。
对于部分更新,您可能会考虑使用PATCH,但在这种情况下,我不认为您会这样做:
如果整个补丁文件 无法成功应用,那么服务器绝不能应用任何 变化。