在哪里查看 Apollo 服务器 express GraphQL 缓存?

Posted

技术标签:

【中文标题】在哪里查看 Apollo 服务器 express GraphQL 缓存?【英文标题】:Where to check Apollo server express GraphQL cache? 【发布时间】:2022-01-19 13:07:09 【问题描述】:

我正在使用 Apollo Sever Express 构建 GraphQL 端点。根据他们的文档,我在我的 typeDefs 架构中添加了 @cacheControl 指令。但我不确定它是否有效,我该如何验证或测试这种情况?我在 localhost:3000/graphql 运行服务器(GraphQL ide 已打开)。

代码-

type Post 
 id: ID!
 title: String
 votes: Int @cacheControl(maxAge: 30)

还在解析器中尝试了动态的,但是我应该如何/在哪里检查呢?

【问题讨论】:

【参考方案1】:

这取决于你追求什么。如果您尝试使用 HTTP 缓存,您应该查看网络调用并查看它是否设置了 cache-control 响应标头。如果您希望缓存整个查询,我只需在解析器中 console.log 即可查看它是否正在执行。

【讨论】:

如何设置用于缓存底层 REST API 的标头? 我认为没有内置任何东西。我知道 Apollos DataSource 类使用底层标头在内部缓存,但我认为这不会转发标头。我会从 REST 响应中读取标头,并以编程方式在 apollo 中设置缓存控制。 是的@peternyc,我尝试使用 RESTDataSource 设置标题,但没有帮助。你能提供你提到的第二点的代码参考吗?

以上是关于在哪里查看 Apollo 服务器 express GraphQL 缓存?的主要内容,如果未能解决你的问题,请参考以下文章

使用 apollo-server-express 迁移到 3.5.0

Mongoose 在 Apollo-Express 服务器上抛出错误 ECONNREFUSED

Apollo 服务器订阅不起作用

Apollo-Server-Express 未收到上传对象

缺少 GET 查询:在 Express 服务器上使用 Apollo 实现 GraphQL

res.cookie 不适用于 apollo-server-express