我可以通过 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 查询和显示包含多个图像的文件夹

如何处理 GraphQL 中的嵌套输入

如何在单个 API 调用中多次使用相同的 GraphQL 查询。放大,DynamoDB

GraphQL 是不是适合在不进行多次查询的情况下从后端检索多级 facet 数据?