Apollo GraphQL 地图列出来自多个来源的实体

Posted

技术标签:

【中文标题】Apollo GraphQL 地图列出来自多个来源的实体【英文标题】:Apollo GraphQL map list entities from multiple sources 【发布时间】:2018-05-19 06:23:33 【问题描述】:

有一个包含来自两个来源的数据的实体列表。 id、name、label 等维度以及所玩游戏、获胜次数等指标。 这些存储在不同的端点中。我想从一个来源查询过滤后的数据,并让 id 立即从另一个来源询问数据,而不是由一个实体按所有实体之一?可以根据排序选项从两者或资源中查询列表的主要集。

【问题讨论】:

我不确定我是否完全理解了这个问题,至少不是最后一部分......但是你不能在解析器中做到这一点吗?只需让它返回包含维度和指标的整个对象,然后让 graphql 从那里处理其余部分.. 嗯,是的,你可以,但这意味着对于每个实体,它将请求 REST 资源来获取数据。例如,如果我有一个包含 20 个项目的列表,它将对资源进行 20 次调用。我想在一次调用中传递一个 ID 列表并将其映射到解析器。 不知道是不是你需要的,不过你可以看看。就像我说的,并不是你所问的一切都很清楚。 launchpad.graphql.com/kqm3pkx557 是的,这个解决方案应该可以解决我的问题。我明天试试。如果您将其添加为答案,我会将其检查为已回答 很高兴听到!用它写了一个答案。干杯! 【参考方案1】:

您可以定义一个接受一个或一组参数的查询。解析器会发出这两个请求,当响应返回时,将它们合并并返回合并后的列表。

查看thislaunchpad 了解我所说的示例。

【讨论】:

以上是关于Apollo GraphQL 地图列出来自多个来源的实体的主要内容,如果未能解决你的问题,请参考以下文章

来自 GraphQL 网站的 Apollo-server 教程产生错误

具有多个 GraphQL 端点的 Apollo

Apollo (GraphQL) 在查询中获取多个元素

Apollo - Angular 应用程序中子组件的多个 graphql 订阅

使用 Prisma 和 Apollo 调用多个 GraphQL 突变的正确方法是啥

Apollo / GraphQl - 单实体突变不更新缓存(数据库更新)