https://www.apollographql.com/docs/apollo-server/features/data-sources.html#Implementing-your-own-cache-backend处的阿波罗基本示例指出,进行redis缓存非常简单:
const { RedisCache } = require('apollo-server-cache-redis');
const server = new ApolloServer({
typeDefs,
resolvers,
cache: new RedisCache({
host: 'redis-server',
// Options are passed through to the Redis client
}),
dataSources: () => ({
moviesAPI: new MoviesAPI(),
}),
});
当我查看非redis的示例时,它指出这是一个简单的{ get, set }
缓存。这意味着我从理论上应该能够做到。
cache : {
get : function() {
console.log("GET!");
},
set : function() {
console.log("SET!");
}
}
无论我尝试什么,当我使用apollo-server本地提供的graphQL Explorer时,都不会调用我的缓存功能。
我尝试对cacheControl : true
和cacheControl
进行设置,就像在https://medium.com/brikl-engineering/serverless-graphql-cached-in-redis-with-apollo-server-2-0-f491695cac7f中一样。没事。
是否有一个示例,说明如何在不使用付费Apollo引擎系统的Apollo中实现基本缓存?
答案 0 :(得分:0)
您应该能够通过实现自己的界面来使用NPM软件包“ apollo-server-caching”。请参阅Implementing Your Own Cache,其中提供了一个示例。
答案 1 :(得分:0)
您可以查看此package的实现,该实现缓存完整的响应以实现您自己的缓存。
cordova-plugin-network-information