RESTDataSource - 如何知道响应来自获取请求还是缓存

问题描述

我需要从我的 GraphQL API 中的 REST API 获取一些数据。为此,我将 RESTDataSourceapollo-datasource-rest 扩展。

据我所知,RESTDataSource 会自动缓存请求,但我想验证它是否确实被缓存。有没有办法知道我的请求是从缓存中获取数据还是访问 REST API?

我注意到第一个请求需要一些时间,但以下请求更快,而且每次查询时都不会调用 didReceiveResponse 方法。是不是因为数据是从缓存中加载的?

我正在使用 apollo-server-express。

感谢您的帮助!

解决方法

您可以按如下方式对请求进行计时:

console.time('restdatasource get req') 
this.get(url)
console.timeEnd('restdatasource get req')

现在,如果时间低于 100-150 毫秒,那应该是来自缓存的请求。