问题标签 [apollo-gateway]

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 投票
1 回答
1966 浏览

java - GraphQL Federation:是否有 Java Springboot 网关

Java / SpringBoot 中是否有 GraphQL 联合网关。在java中找不到任何实现。看到几个联邦图的例子,但网关在本机节点上。

检查了 Apollo 和 netflix DGS 。

https://github.com/Netflix/dgs-federation-example

0 投票
1 回答
778 浏览

node.js - 连接 ECONNREFUSED,阿波罗联盟

我决定通过他们网站上的例子来研究阿波罗联盟。我试图在联合下合并三个服务,但我发现了这个错误:

检查服务定义更改时出错:无法在 http://localhost:4001 加载“帐户”的服务定义:对 http://localhost:4001/ 的请求失败,原因:连接 ECONNREFUSED 127.0.0.1:4001 此数据图缺少有效的配置。无法在 http://localhost:4001 加载“帐户”的服务定义:对 http://localhost:4001/ 的请求失败,原因:连接 ECONNREFUSED 127.0.0.1:4001

服务代码和阿波罗网关:

帐户

产品

评论

阿波罗网关

0 投票
0 回答
188 浏览

graphql - Netflix 网关实施

所以我正在阅读一篇关于 Netflix 如何使用 graphql federation 扩展其 API 的文章。在本文的第二部分,我注意到 Netflix 开发了一个基于 apollo federation 规范的特殊网关。

https://netflixtechblog.com/how-netflix-scales-its-api-with-graphql-federation-part-2-bbe71aaec44a

我搜索了整个互联网,但找不到实现。我想知道他们是否公开了实现,如果他们公开了,我在哪里可以找到它?

0 投票
1 回答
419 浏览

apollo - Apollo Federation 上的两个微服务之间的突变

我正在使用 Apollo Federation 来处理大量 GraphQL 微服务。我想在关注用户时创建一个通知,所以我需要将一个突变从 UserService 发送到 NotificationService。我怎样才能做到这一点?

先感谢您!

0 投票
0 回答
331 浏览

apollo-server - Apollo federation:从实现接口的两个独立服务返回实体的字段/解析器

概括

在 GraphQL Apollo 托管联合中,我试图弄清楚一个服务是否可能有一个聚合字段,它返回一个实体数组,两个独立的服务。如,我试图支持这个用例:

两者都在哪里

在底层,解析器aggregateField(位于服务 2 上)向下调用服务 1 到Service1Entitys。所以这个字段聚合了两个数据集。

示例问题

在我当前的 GraphQL 设置中,我将所有这些都定义在一个服务中:

当我查询我的服务时,它会遇到一个animals解析器,看起来像:

现在我正在创建一个Dogs服务。我想Dogs来自 Dog 服务,而 Cats 来自 Cats 服务。此外,我仍然想支持我的animals聚合字段,并且我想将它移到Dogs服务中。

为了支持这一点,我创建了Cat一个实体,并在两个服务之间复制了接口。为了让 Dog 服务解析Cat类型,我使用了“引用”来告诉 Dog 服务Cat住在其他地方。

Cat 服务(用 标记 Cat 为实体@key):

狗服务:

这个设置的问题是 Dog 服务无法启动,因为这个 GraphQL 错误:

错误:接口字段 Animal.name 应为预期,但 Cat 未提供。

在我的 Dog 服务中,如果我添加一个外部name字段,如下所示:

然后这两个服务无法组成托管联合:

此数据图缺少有效配置。[dog] Cat.name -> 被标记为@external,但未被@requires、@key 或@provides 指令使用。

我有点觉得我在这里走错了路。是否有可能有一个像这样的聚合字段,其中一个服务可以返回它自己的实体,以及另一个服务的实体?

我们已经有很多客户查询该animals字段,因此我们试图在不要求客户更改的情况下支持此更改,也就是不重新调整接口的使用。

0 投票
1 回答
226 浏览

apollo-server - 需要多个 ApolloServer 来实现连接到 REST API 的网关?

我正在构建一个 graphql 网关服务,它将多个服务合并到一个图中,使用 Apollo/Node/Express 并遵循 Apollo Federation 模型。最初,我要连接的大部分服务都是 REST 服务。

在我找到的所有示例中(例如此处),我看到网关项目运行多个 ApolloServer 实例,每个 REST 服务一个,另外一个用于网关本身,并使用像concurrent一样的包运行它们。基本上网关项目运行 n+1 ApolloServers。让所有这些服务器运行对我来说似乎很奇怪,但我对整个生态系统还是很陌生。

我不清楚这是否只是为了演示目的,还是这也是它在现实世界中的实施和部署方式?

0 投票
0 回答
203 浏览

apollo - Apollo Federation(网关):如何向不同的实现微服务发送不同的“密钥”?

我正在尝试用一个网关和 3 个实现微服务来组成一个联合阿波罗服务。

MS1:

MS2:

MS3:

MS1 提供nameidname应发送到 MS3 用于解析过程,id应由 MS2 用于解析过程。

这种方法适用于旧版本的 apollo-gateway / apollo-server,但在最新版本中我收到以下错误消息。

提供这样的密钥的方法也不起作用:

模式必须是什么样子才能提供所描述的用例?

0 投票
1 回答
176 浏览

graphql - 使用 API 密钥查询 GraphQL 微服务?

我在这两个微服务之上开发了两个 Netflix DGS GraphQL 微服务和 Apollo Gateway,使它们成为一个联合的 graphql。我有一个客户端应用程序正在尝试查询两个 graphql 微服务。并且这两个微服务都有一个唯一的 API 密钥。我们如何从客户端或 Apollo 服务器为多个微服务分配 API 密钥?当客户端使用 API 密钥查询多个微服务时,服务器可能会忽略 API 密钥。是否有处理 API 密钥管理的最佳实践?

0 投票
1 回答
404 浏览

graphql - Apollo 联合网关:在编写超图时包含本地模式

在为 Apollo Federation 的网关编写超图时,您将创建一个.yaml配置文件,其中包含到子图的路由 url。例如:https ://github.com/apollographql/supergraph-demo/blob/main/subgraphs/inventory/inventory.js

在上面的示例中,他们为每个子图启动 Apollo 服务器并组成一个超图。是否可以在不启动 Apollo 服务器且仅包含本地模式的情况下编写超图?

0 投票
0 回答
86 浏览

apollo - 阿波罗联盟验证另一个子图中的输入字段

在微服务项目中,我配置了 graphql、apollo-federation、apollo-gateway。

菜单服务

定位服务

在菜单中创建解析器我想获取位置数据

我熟悉@key、@external、extends。但这适用于类型对象,不适用于输入类型