如何知道 API 响应是否已更改?
How to know if an API response has changed?
我正在使用 REST API,它返回我想要的数据作为 JSON 响应。实际上,我只想处理以前未处理过的新数据,但我正在努力寻找解决此问题的最佳方法。
我的一个想法是对整个 JSON 响应进行哈希处理并将其存储在一个变量中,然后每次我轮询 API 以获取新数据时,我都会对其进行哈希处理并根据上一次调用的哈希值,那么如果哈希值不同,我就知道数据不同。显然,这似乎是一种非常低效的了解是否有新数据的方法,我想知道如何才能做得更好。
我正在使用请求 npm 模块。
你可以尝试自己实现一套HTTPheader。您正在寻找的 header 是:
- ETag
- If-Modified-Since
- If-Unmodifed-Since
- If-Modified
- If-Match
您会发现上述 header 和 here 的基本特征。
就您的申请而言,ETag
似乎是最好的。来自服务器的每个响应都应该有 ETag
header。下次请求同一组数据时,ETag
应包含在请求中。服务器决定自上次调用以来数据是否发生变化(基于 ETag
)。如果是,则 200 与新集合一起返回,否则 304
.
我正在使用 REST API,它返回我想要的数据作为 JSON 响应。实际上,我只想处理以前未处理过的新数据,但我正在努力寻找解决此问题的最佳方法。
我的一个想法是对整个 JSON 响应进行哈希处理并将其存储在一个变量中,然后每次我轮询 API 以获取新数据时,我都会对其进行哈希处理并根据上一次调用的哈希值,那么如果哈希值不同,我就知道数据不同。显然,这似乎是一种非常低效的了解是否有新数据的方法,我想知道如何才能做得更好。
我正在使用请求 npm 模块。
你可以尝试自己实现一套HTTPheader。您正在寻找的 header 是:
- ETag
- If-Modified-Since
- If-Unmodifed-Since
- If-Modified
- If-Match
您会发现上述 header 和 here 的基本特征。
就您的申请而言,ETag
似乎是最好的。来自服务器的每个响应都应该有 ETag
header。下次请求同一组数据时,ETag
应包含在请求中。服务器决定自上次调用以来数据是否发生变化(基于 ETag
)。如果是,则 200 与新集合一起返回,否则 304
.