Apollo 中的 GraphQL 持久化查询

Posted

技术标签:

【中文标题】Apollo 中的 GraphQL 持久化查询【英文标题】:GraphQL persisted queries in Apollo 【发布时间】:2018-04-28 13:17:03 【问题描述】:

因为根据定义,持久化查询是静态的,它们也为您提供 优化服务器上​​执行特定的可能性 查询,例如通过手工制作高效的数据库 询问。 https://dev-blog.apollodata.com/persisted-graphql-queries-with-apollo-client-119fd7e6bba5

但是如果查询是在服务器端自动注册的,这意味着服务器必须监视新的查询并适应手工制作的数据库查询,你甚至不知道更改了什么查询。也许最好不要自动注册请求,而是手动注册查询?

因此,在开发环境中,客户端可以使用 graphql 查询,当他们知道查询是他们需要的内容时,他们可以向服务器开发人员发送请求以注册查询或修改现有查询。

【问题讨论】:

【参考方案1】:

也许最好不要自动注册请求,而是手动注册查询?

根据我的经验,如果您希望将持久查询用于白名单 安全方面,那么自动创建持久查询并不理想。通常,您有一些手动脚本来同步或剪切来自客户端的一组持久查询,然后将其放入服务器中。在构建/部署时,这将是最有意义的。


最近有一些关于Automatic Persisted Queries 的工作,但这只是为了提高性能(它发生在服务器处理的每个查询上,并且客户端需要构建为处理这个新流程)。

【讨论】:

以上是关于Apollo 中的 GraphQL 持久化查询的主要内容,如果未能解决你的问题,请参考以下文章

外部 WebSocket 服务器上的 Apollo-Server GraphQL 订阅

使用 apollo-boost 持久化缓存

如何配置 Graphene-Django 以处理持久查询?

如何为 Apollo GraphQL 客户端禁用 InMemoryCache?

Apollo 客户端持久缓存不起作用

如何处理 Vue.JS 中的 Apollo Graphql 查询错误?