使用文档中的简单“电影 API”示例。我在函数ttl中添加了 a getMovie,以便将结果缓存 10 分钟。如何使updateMovie函数中的缓存失效?
const { RESTDataSource } = require('apollo-datasource-rest');
class MoviesAPI extends RESTDataSource {
async getMovie(id) {
return this.get(`movies/${id}`, {}, { cacheOptions: { ttl: 600 } });
}
async updateMovie(id, data) {
const movie = await this.put(`movies/${id}`, data);
// invalidate cache here?!
return movie;
}
}
Run Code Online (Sandbox Code Playgroud)
我知道KeyValueCache传递给 ApolloServer 的接口提供了一个delete函数。但是,该对象似乎没有在数据源中公开。它被包装在 内部HTTPCache,仅公开一个fetch函数。也KeyValueCache被包装在 a 内PrefixingKeyValueCache,因此假设RESTDataSource.