REST API 中的数据新鲜度策略

Posted

技术标签:

【中文标题】REST API 中的数据新鲜度策略【英文标题】:data freshness policy in REST APIs 【发布时间】:2014-09-21 21:00:37 【问题描述】:

后端系统可能负载过重,积压了未处理的数据。这会导致数据库中的数据过时。 在返回此过时数据的 API 中指示它的推荐做法是什么? 谢谢, 弗拉德

【问题讨论】:

您可能可以发送最后修改的标头或 etag。但是我没有完全理解这个问题,你能详细说明一下吗? 当然。如果后端由于某种原因出现故障或停止服务,则会导致数据库中的数据过时。例如:转换次数会过时,只有在后端恢复服务时才会缩小差距。问题是如何在客户端知道有效期至... 通过 HTTP 客户端总是可以有过时的数据,这是你无法避免的。这就是为什么有些人在服务器端使用最终一致性模型并为响应添加时间戳的原因。如果您无法立即向客户发送有关写作过程的答复,那么您可以发送 202 - 接受的标头。但也许我仍然没有得到这个问题:-) 【参考方案1】:

后端无法知道哪些更新正在等待并通知客户端。

如果有正在处理的请求积压是因为后端无法为它们提供服务。所以后端不知道哪个请求正在等待处理。

另一个假设是后端处理更新请求,但推迟了委托给缓存的数据读取服务。然后缓存可以通知客户端它正在读取的数据可能已过时,但如果不咨询后端就无法提供准确的信息,这似乎是您不能做或不想做的事情。

【讨论】:

以上是关于REST API 中的数据新鲜度策略的主要内容,如果未能解决你的问题,请参考以下文章

如何为 REST API 构建 Mongo 数据库 [关闭]

具有同源策略和 OAuth 的 REST API 身份验证

Tableau REST API 2.6 中的查询视图数据

调用 REST API、JavaScript 时的 CORS 策略 [重复]

REST API 和移动应用的身份验证策略

将客户端数据存储在 Angular 中的位置,稍后在 REST-API 中用于获取信息