我可以通过 graphQL 查询多次查询 GraphQL 单一响应吗?
Posted
技术标签:
【中文标题】我可以通过 graphQL 查询多次查询 GraphQL 单一响应吗?【英文标题】:Can i query GraphQL single responce multiple times by graphQL query? 【发布时间】:2020-05-21 00:32:33 【问题描述】:我正在使用 GraphQL React-Apollo 创建一个 BFF 应用程序,这是我想要的 1) 在一个请求中,无论我得到什么数据,我都可以在不发送另一个请求的情况下再次多次查询该数据集。
假设我得到了
[
group1:[
id:123,name:"abcd"
id:133,name:"sdfg"
],
group2:[
id:1234,name:"abdfcd"
id:1333,name:"sdffgg"
]
group3:[
id:12234,name:"abdffgcd"
id:13333,name:"sdfdgffgg"
]
]
现在我想从一个组件中获取 group1 数据 从另一个组件中获取 group2 数据 因此可以从 React 调用 BFF 2 次以上但不发送请求。
【问题讨论】:
【参考方案1】:我假设您的客户是 Apollo 客户,而您的 BFF 是一个单独的服务。如果这是正确的,那么是的,您可以按照您的解释进行操作。
从 Apollo 客户端执行任何查询时,您可以指定网络策略。 因此,对于第一个,您可以将其标记为“仅限网络”,对于接下来的两个,您可以执行“首先缓存”。
在这种情况下,只要您的第一个查询被执行,Apollo 就会缓存您的数据,然后在第二个查询调用中,您无需实际通过网络即可获取数据。
【讨论】:
以上是关于我可以通过 graphQL 查询多次查询 GraphQL 单一响应吗?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法将 GraphQL 查询字段分组到子/嵌套查询组中?
meteor apollo graphql/sequelize 缓存查询结果,避免多次相同查询
如何使用 GatsbyJS 和 GraphQL 查询和显示包含多个图像的文件夹