如何知道 API 响应是否已更改?

Jaz*_*ash 7 http response request

我正在使用 REST API,它将我想要的数据作为 JSON 响应返回。实际上,我只想处理以前未处理过的新数据,但我正在努力了解解决此问题的最佳方法。

我的一个想法是对整个 JSON 响应进行散列并将其存储在一个变量中,然后每次我轮询 API 以获取新数据时,我都会对其进行散列并根据上一次调用的散列对其进行检查,然后如果散列不同,我知道数据不一样。显然,这似乎是一种非常低效的方式来了解是否有新数据,我想知道如何才能做得更好。

我正在使用请求 npm 模块。

Opa*_*pal 5

您可以尝试做的是自己实现一组 HTTP 标头。您正在寻找的标题是:

  • 标签
  • If-Modified-Since
  • If-Unmodified-Since
  • 如果修改
  • 如果匹配

您可以在此处找到上述标题的基本特征。就您的申请而言,这似乎ETag是最好的。来自服务器的每个响应都应该有ETag标头。下次请求相同数据集ETag时应包含在请求中。服务器决定自上次调用以来数据是否已更改(基于ETag)。如果是,则 200 与新集合一起返回,否则返回304