我的代码如下所示:
let myAPI = Service(baseURL: "...")
myAPI.resource("/...").addObserver(owner: self) { resource, event in
}
如果网址总是返回200(不是301),是否有办法检查resource
或event
数据本身,json内容是否已更改或是否为相同?
我想实现一个行为,即app在后台加载,只有在JSON本身发生变化时才会触发UI动作。
答案 0 :(得分:0)
Siesta目前不支持这一点。在一般情况下,它不能自动执行此操作,因为对于每种类型的资源内容,没有普遍有效的“已更改”定义。 (即使资源内容为Equatable
,并且恰好与您想要的“已更改”的定义相匹配,是否应将某些标题包含在相等的概念中?哪些标题??
304是一个很好的亮点:服务器,资源的真实仲裁者,声明它在语义上不变 - 以及关于“未更改”意味着在服务器上存在的所有API特定规则。
然而,这似乎是一个很好的事情,能够自定义。如果您希望看到它已实施,我建议您提交问题。
与此同时,您可以手动完成:使资源有效负载符合Equatable
并在资源观察器中进行检查。如果你有性能敏感的更新,那么这种形状的方法有时会更有意义,因为你可以检查部分更改(例如,只更改了集合中的某些元素)。