假设以下场景Web 应用程序通过 RESTful API 提供资源。许多客户端使用此 API。目标是保持客户端上的数据与 Web 应用程序同步(双向)。
最简单的方法是询问 API 自客户端上次与 API 同步以来是否有任何资源发生更改。这意味着客户端需要向 API 请求带有时间戳的适当资源(以查看数据是否需要更新)。在我看来,就不必要的带宽消耗而言,这似乎是开销最小的方法。
但是,我觉得这种方法在设计和责任方面有一些缺点。例如,API 不应该处理检查资源是否过期的问题。似乎 API 的唯一职责应该是在被询问时提供资源,而不必处理更新方面。通过采用第二种方法,客户端每次想要更新其数据以使其与 Web 应用程序保持同步时都会请求大量数据。换句话说,客户端会检查它返回的数据是否比本地存储的数据更新。如果此过程每隔几分钟发生一次,这可能会成为系统的重大负担。
我是否正确地看到了这一点,还是我忽略了一条中间道路?