问题标签 [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 投票
1 回答
222 浏览

express - 阿波罗联盟文件上传

我在阿波罗联邦子图中上传文件时遇到问题,这是我在阿波罗网关中的代码

在使用来自@apollo/gateway 的 RemoteGraphQLDataSource 时,这是文件上传的结果 在此处输入图像描述

错误是 BadRequestError:缺少多部分字段“操作”。

但是当我从服务列表中引导请求时,文件 在此处输入图像描述 在搜索时上传我找到这个解决方案https://www.npmjs.com/package/@profusion/apollo-federation-upload然后将RemoteGraphQLDataSource替换为FileUploadDataSource但是输出是一样的

有人可以帮我吗?谢谢你

0 投票
0 回答
67 浏览

rust - 使用 async-graphql 的联合实体

我正在努力弄清楚如何将两个不同的 GraphQL 对象结合在一起。在我整理的 PoC 中,我有一个Invoice对象:

使用适当的查询:

当我启动我的应用程序时,这完全符合预期,并且所有查询都正常工作。

我有另一个应用程序,但这是一个Customer对象:

它具有与 类似的查询Invoice,但还包括:

我在这个服务中也有一个表示Invoice来将它们合并在一起:

同样,我自己可以完美地查询所有客户。当我设置一个 Apollo 联合网关时,我得到一个包含InvoiceCustomer查询的模式。但是,该customer字段永远不会添加到Invoice对象中。Apollo 网关在启动时不会报告任何错误。将字段添加到对象中我缺少什么?

0 投票
0 回答
44 浏览

apollo - 迁移到 apollo federation 时如何合并类型?

我要搬到阿波罗联邦。我有多项服务,现在正在将模式推送到阿波罗工作室。我可以在那里看到联合模式。在我有以下类型的一种情况下,我感到困惑。

现在我有另一种类型*(在另一个服务中)* 这是

当我不使用联邦时,这工作正常。当这个模式被推送到 apollo-studio 进行联合时,它给了我无效 @key 指令的错误。如果我将扩展类型更新为

graphql 查询失败。更新这个的正确方法是什么?

0 投票
0 回答
86 浏览

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

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

菜单服务

定位服务

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

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

0 投票
0 回答
301 浏览

graphql - NestJs Apollo GraphQL 联合和 responseCachePlugin

我想用 nestjs 在服务器端缓存我昂贵的 GQL 查询

我关注了 https://docs.nestjs.com/graphql/plugins#using-external-plugins然后https://www.apollographql.com/docs/apollo-server/performance/caching/#caching-with- responsecacheplugin-高级

我还看到了https://github.com/nestjs/graphql/issues/443#issuecomment-599445224这表明它应该按预期工作

我正在使用阿波罗联盟

我遇到的问题是,如果我在子图中添加 responseCachePlugin,它(或多或少)正常工作

但是,当我尝试在网关(即联合服务)使用 responseCachePlugin 时,它会被忽略:所有请求总是命中下游子图

包.json

注意:使用 0.9.0 与 2.25.0 兼容(还不能移动到最新的 3.2.0)

然后,在网关的“主”模块中,我有:

应用程序正确启动,但正如我已经说过的,每个请求都会命中下游子图

另请注意,如果我将完全相同的配置直接放在子图中,那么解析器将不再被命中(但是,这意味着缓存是在子图中完成的,这不是我想要的)

如果不直接提供解决方案,是否有人可以解释缓存应该如何与阿波罗联邦合作(除了极简主义文档https://www.apollographql.com/docs/apollo-server/performance/caching/#caching -with-responsecacheplugin-advancedhttps://www.apollographql.com/docs/federation/performance/caching/)?

0 投票
0 回答
12 浏览

graphql - 如何考虑联合服务

我们对联邦图方法还很陌生,如果我们试图通过将其拆分为更小的实体来使其过于复杂,我们希望能得到一些反馈。

例子:

我们有一个Ticket

我们有一个Category

我们现在需要实现一种列出待售产品的方法,并设置 listPrice 等。将来甚至是出价。所以我的想法是创建一个新的联合服务,处理listedProducts如下:

到目前为止,一切都很好。但是我遇到麻烦的地方是我只想在 Category 实体下呈现listedProducts。这将需要一个 3 路参考才能解决,如果不直接在服务之间进行通信,我将如何做到这一点?

预期结果:

0 投票
0 回答
8 浏览

typescript - 将 Gateway 的解析器导出到文件中

我正在构建一个联合图“网关”,并希望将网关的联合解析器导出到一个文件中以供以后使用

有一种叫做executor我们可以得到的东西:

使用上面的代码,我可以提取网关的联合模式。如何将网关的联合解析器提取为TypeDefsor DocumentNodeexecutor这里有什么作用吗?

0 投票
1 回答
205 浏览

graphql - 如何使用 GraphQL 联合实现 Relay 节点查询

我们正在尝试使用Apollo federation实现Relay 节点查询。由于 Apollo 不知道 Relay,我们必须在一些服务(Node Resolution Service)中实现节点查询

问题是节点解析服务不知道其他服务子图中定义的任何实现类型。

Apollo 网关向节点解析服务发送如下请求

查询验证失败,因为服务不知道任何关于TypeFromAnotherService. 我们能够实现节点查询,因为我们在 ID 中编码了类型,但我们不知道如何修复验证。

  1. 我们可以根据联合模式动态生成模式。这个好像用在这里但是感觉很麻烦
  2. 关闭验证并信任 Apollo GW 验证。我们不喜欢它,而且似乎在我们在后端使用的Netflix DGS中是不可能的。

任何想法如何使中继节点查询与联邦一起工作?

0 投票
1 回答
246 浏览

graphql - 源 GraphQL API:HTTP 错误 400 错误请求

我已经建立了一个可通过网关访问的阿波罗联盟架构。我想使用官方插件gatsby-source-graphql通过 gatsby 访问它。我遵循了他们的文档并尝试将插件包含在“简单”示例中。

当我yarn build在我的 gatsby 项目上运行时,我得到以下终端输出:

我的 gatsby-config.js 是这样的:

错误“Source GraphQL API: HTTP error 400 Bad Request”非常模糊,我无法得到更详细的消息错误。

我能做些什么来更好地理解这个错误并解决它?

0 投票
0 回答
38 浏览

graphql - 传递一个变量来解析 Apollo Federation 中的引用

我有 2 个微服务:1- 用户 2- 产品

另一方面,我有:

我正在寻找一种将“语言”变量从用户发送到产品的方法,以便以该特定语言获取产品详细信息。