是否有通用设计模式将已删除的对象分派给请求者(API的客户端)?
我们遇到的挑战:
我们研究的另一个选项是在API上使用单独的端点来显示已删除对象的列表(这是任何人使用的模式吗?)。
我正在寻找删除本地对象的最“RESTful方式”。
答案 0 :(得分:2)
我处理它的方式是#1的变体:每个项目在数据库中都有一个last updated
字段,如果删除了某些内容,我会在另一个已删除项目表中创建一个条目,并且它已更新值是删除时的值。
客户端发出请求“自X以来的更改”的请求,这是他们自己的本地存储的last updated
值...它返回新数据和一系列已删除的项目。然后在客户端上我清除那些值
答案 1 :(得分:1)
陈旧数据始终是客户端/服务器应用程序的问题。如果客户端加载了一些数据,那么在服务器上删除了一些对象,然后客户端发送DELETE请求,RESTFul要做的就是返回404,表示“未找到”。如果客户端知道如果它发送DELETE并获得404,则资源正在从下面删除...
答案 2 :(得分:0)
如果您认为您的资源不是列表,而是将其视为变更集,该怎么办?
EG。更改git或SVN中的内容。
这样,总有一个“头”版本,客户端总是有一些版本,资源是客户端的最后一个版本和头部版本之间的变化。
通过检查/使用版本控制系统,您可以应用您学到的任何内容。
如果你需要更复杂的东西,背后的科学被称为操作转换(OT) - http://en.wikipedia.org/wiki/Operational_transformation