问题标签 [apollo-federation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
995 浏览

typescript - Apollo Federation 从 ID 解析数组

我使用 MongoDB 作为我的联合 Apollo GraphQL API 的数据库。

(我的代码在 TypeScript 中)

我已经为解析器对象创建了一个__resolveReference方法,当我从如下调用它时它工作正常:Postuser service

但是,当我在数组上调用它时,它不起作用。以下是我的称呼:

邮编__resolveReference如下:

我知道从对象上的解析器__resolveReference调用时没有“命中”,因为终端中没有显示 s,同样,仅来自解析器而不是。postsUserconsole.log()postsfirstPost

我需要一些帮助来获得__resolveReference数组的工作。

谢谢你。

0 投票
0 回答
171 浏览

graphql - 将标头转发到实现

我正在构建一个以 gqlgen 和 apollo federation 作为网关的 graphql api。

在 gqlgen 中,我有三个服务:静态页面、帐户、身份验证。

我正在使用阿波罗联盟作为网关。

对于 auth 部分,我需要像r.Header.Get("Authorization")中间件一样获取 Authorization 标头。但它是空的。

如何将标头从 apollo 联合网关传递到 gqlgen 服务器?

0 投票
0 回答
121 浏览

graphql - Apollo Federation:在扩展类型的同时本地开发底层服务

在使用 Apollo federation 对分布式服务进行本地开发时,我遇到了障碍。问题是当服务 1定义类型 A 并且服务 2扩展类型 A 时。仅运行服务 2(不是网关)时,任何返回类型 A 的操作都不起作用,因为它没有在服务 1 中定义;服务 2 在网关上下文之外运行时不知道服务 1。

我在服务 2 中有类型 A 的存根,但在查询类型中没有它可用,因为由于服务 1 中已经存在类型,它会在失败时引发模式验证错误。

这方面的信息似乎很少,但也许我只是没有把这些点联系起来。你用什么模式来处理这个问题?

编辑 示例代码

服务 1 - 类型

服务 2 - 类型

针对联合网关的查询:

我试图弄清楚如何单独查询服务 2 中的实体。

0 投票
1 回答
268 浏览

graphql - 使用 Apollo Federated GraphQL,有没有办法对来自外部实体的值进行排序/分页?

是否可以将查询输入中的字段标记为需要由不同服务扩展的字段?

使用federation-demo来说明我的问题,但要保持简单一点。只有一个帐户服务和一个评论服务,并向karma用户添加一个字段,是否可以根据用户业力过滤评论。

帐户服务,向用户添加 karma int:

评论服务,添加评论查询:

在我的 Query.reviews 解析器中,我想过滤掉所有 review.author.karma 小于指定 minKarma 的评论。

我如何告诉网关,当在查询输入中指定 minKarma 时,我希望首先查询 Account 服务,并将用户的表示传递到 Review 服务,每个用户的业力附加到评论作为作者,这样我可以做过滤器?

回到这篇文章顶部的问题,我可以将该minKarma字段标记为需要User.karma吗?

0 投票
1 回答
17 浏览

apollo-server - 使用 Key 启动网关以验证配置,然后使用 Bearer 令牌进行查询

我有一个网关和联合服务存在的生态系统。问题是当网关启动时,它会验证服务——为此它需要获得授权。

当客户端通过联合网关查询时,它们会提供不记名令牌。

在这两种情况下,都使用请求标头授权字段。

我已经阅读并重新阅读了文档,但我无法使用不同的令牌来实现这一点。

任何人有任何想法或相关文档的链接?干杯

0 投票
1 回答
368 浏览

graphql - Graphql Apollo Federation - 基于实现服务解析计算域

我正在使用 GraphQL 联合架构,并且正在尝试将新字段添加到扩展类型。例如,假设我在远程联合模式中有一个类型:

我想根据它的数据扩展这种类型,例如:

在解析器中我会写:

但不幸的是,它不起作用。扩展模式只接收 ID 和 __typename,仅此而已。你知道我怎样才能不仅收到“id”而且收到其他必要的字段吗?

非常感谢!

0 投票
1 回答
299 浏览

typescript - Nestjs GraphQL Apollo Federation - 解析器在调试中有一个对象,返回一个带有空值的对象

我正在使用 NestJs、GraphQL apollo federation(模式优先方法)和 Mongoose。

在查询productorproducts解析器时,查询返回一个所有属性都为空的对象。

但是,当我在我的服务/解析器中调试和使用断点时,我可以看到这些函数正在返回正确的 mongo 文档。

文件代码片段:

0 投票
2 回答
1069 浏览

apollo-federation - GraphQL-Mesh 和 Apollo-Federation 有什么区别?

GraphQL-Mesh 和 Apollo-Federation 有什么区别?

我看到网格支持联邦,这有点混乱?

实现统一模式只是两种不同的方式吗?

为什么你会选择一种解决方案而不是另一种?

0 投票
1 回答
315 浏览

javascript - Apollo Server Federation 没有解决?

首先感谢您阅读本文,我花了最后一天的时间来解决这个我根本无法弄清楚的错误。我之前有它工作过,但由于某种原因它停止了。基本上,所有服务都按预期独立工作。但是,一旦我尝试引用另一个(假设我正在使用配置文件服务并想从帐户服务中提取电子邮件),它只会返回 null。没有错误信息,什么都没有。我已经添加了重要的代码片段,但如果您想查看整个代码库,请告诉我,我会将其推送到 github。

帐户类型定义:

帐户解析器:

配置文件类型定义:

轮廓解析器:

0 投票
1 回答
351 浏览

microservices - 当 Apollo 网关出现故障时,如何制定定时和重试策略?

Apollo 网关模块需要一个GraphQL要连接的服务器列表。如果这些服务中的任何一个未能向 Apollo 网关响应成功代码,则整个网关将以失败状态退出。

当网关出现故障时,应该有一个重试策略。Apollo 网关初始化,以便在失败时由重试函数管理。

我怎样才能做到这一点?