问题标签 [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.
java - GraphQL Federation:是否有 Java Springboot 网关
Java / SpringBoot 中是否有 GraphQL 联合网关。在java中找不到任何实现。看到几个联邦图的例子,但网关在本机节点上。
检查了 Apollo 和 netflix DGS 。
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
服务代码和阿波罗网关:
帐户
产品
评论
阿波罗网关
graphql - Netflix 网关实施
所以我正在阅读一篇关于 Netflix 如何使用 graphql federation 扩展其 API 的文章。在本文的第二部分,我注意到 Netflix 开发了一个基于 apollo federation 规范的特殊网关。
https://netflixtechblog.com/how-netflix-scales-its-api-with-graphql-federation-part-2-bbe71aaec44a
我搜索了整个互联网,但找不到实现。我想知道他们是否公开了实现,如果他们公开了,我在哪里可以找到它?
apollo - Apollo Federation 上的两个微服务之间的突变
我正在使用 Apollo Federation 来处理大量 GraphQL 微服务。我想在关注用户时创建一个通知,所以我需要将一个突变从 UserService 发送到 NotificationService。我怎样才能做到这一点?
先感谢您!
apollo-server - Apollo federation:从实现接口的两个独立服务返回实体的字段/解析器
概括
在 GraphQL Apollo 托管联合中,我试图弄清楚一个服务是否可能有一个聚合字段,它返回一个实体数组,两个独立的服务。如,我试图支持这个用例:
两者都在哪里
和
在底层,解析器aggregateField
(位于服务 2 上)向下调用服务 1 到Service1Entity
s。所以这个字段聚合了两个数据集。
示例问题
在我当前的 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
字段,因此我们试图在不要求客户更改的情况下支持此更改,也就是不重新调整接口的使用。
apollo-server - 需要多个 ApolloServer 来实现连接到 REST API 的网关?
我正在构建一个 graphql 网关服务,它将多个服务合并到一个图中,使用 Apollo/Node/Express 并遵循 Apollo Federation 模型。最初,我要连接的大部分服务都是 REST 服务。
在我找到的所有示例中(例如此处),我看到网关项目运行多个 ApolloServer 实例,每个 REST 服务一个,另外一个用于网关本身,并使用像concurrent一样的包运行它们。基本上网关项目运行 n+1 ApolloServers。让所有这些服务器运行对我来说似乎很奇怪,但我对整个生态系统还是很陌生。
我不清楚这是否只是为了演示目的,还是这也是它在现实世界中的实施和部署方式?
apollo - Apollo Federation(网关):如何向不同的实现微服务发送不同的“密钥”?
我正在尝试用一个网关和 3 个实现微服务来组成一个联合阿波罗服务。
MS1:
MS2:
MS3:
MS1 提供name和id。 name应发送到 MS3 用于解析过程,id应由 MS2 用于解析过程。
这种方法适用于旧版本的 apollo-gateway / apollo-server,但在最新版本中我收到以下错误消息。
提供这样的密钥的方法也不起作用:
模式必须是什么样子才能提供所描述的用例?
graphql - 使用 API 密钥查询 GraphQL 微服务?
我在这两个微服务之上开发了两个 Netflix DGS GraphQL 微服务和 Apollo Gateway,使它们成为一个联合的 graphql。我有一个客户端应用程序正在尝试查询两个 graphql 微服务。并且这两个微服务都有一个唯一的 API 密钥。我们如何从客户端或 Apollo 服务器为多个微服务分配 API 密钥?当客户端使用 API 密钥查询多个微服务时,服务器可能会忽略 API 密钥。是否有处理 API 密钥管理的最佳实践?
graphql - Apollo 联合网关:在编写超图时包含本地模式
在为 Apollo Federation 的网关编写超图时,您将创建一个.yaml
配置文件,其中包含到子图的路由 url。例如:https ://github.com/apollographql/supergraph-demo/blob/main/subgraphs/inventory/inventory.js
在上面的示例中,他们为每个子图启动 Apollo 服务器并组成一个超图。是否可以在不启动 Apollo 服务器且仅包含本地模式的情况下编写超图?
apollo - 阿波罗联盟验证另一个子图中的输入字段
在微服务项目中,我配置了 graphql、apollo-federation、apollo-gateway。
菜单服务
定位服务
在菜单中创建解析器我想获取位置数据
我熟悉@key、@external、extends。但这适用于类型对象,不适用于输入类型