标签: apollo-datasource-rest

如何使 Apollo Server RESTDataSource 中的缓存失效

使用文档中的简单“电影 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.

caching apollo-server apollo-datasource-rest

2
推荐指数
1
解决办法
1402
查看次数