问题标签 [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.
express - 阿波罗联盟文件上传
我在阿波罗联邦子图中上传文件时遇到问题,这是我在阿波罗网关中的代码
在使用来自@apollo/gateway 的 RemoteGraphQLDataSource 时,这是文件上传的结果
错误是 BadRequestError:缺少多部分字段“操作”。
但是当我从服务列表中引导请求时,文件 在搜索时上传我找到这个解决方案https://www.npmjs.com/package/@profusion/apollo-federation-upload然后将RemoteGraphQLDataSource替换为FileUploadDataSource但是输出是一样的
有人可以帮我吗?谢谢你
rust - 使用 async-graphql 的联合实体
我正在努力弄清楚如何将两个不同的 GraphQL 对象结合在一起。在我整理的 PoC 中,我有一个Invoice
对象:
使用适当的查询:
当我启动我的应用程序时,这完全符合预期,并且所有查询都正常工作。
我有另一个应用程序,但这是一个Customer
对象:
它具有与 类似的查询Invoice
,但还包括:
我在这个服务中也有一个表示Invoice
来将它们合并在一起:
同样,我自己可以完美地查询所有客户。当我设置一个 Apollo 联合网关时,我得到一个包含Invoice
和Customer
查询的模式。但是,该customer
字段永远不会添加到Invoice
对象中。Apollo 网关在启动时不会报告任何错误。将字段添加到对象中我缺少什么?
apollo - 迁移到 apollo federation 时如何合并类型?
我要搬到阿波罗联邦。我有多项服务,现在正在将模式推送到阿波罗工作室。我可以在那里看到联合模式。在我有以下类型的一种情况下,我感到困惑。
现在我有另一种类型*(在另一个服务中)* 这是
当我不使用联邦时,这工作正常。当这个模式被推送到 apollo-studio 进行联合时,它给了我无效 @key 指令的错误。如果我将扩展类型更新为
graphql 查询失败。更新这个的正确方法是什么?
apollo - 阿波罗联盟验证另一个子图中的输入字段
在微服务项目中,我配置了 graphql、apollo-federation、apollo-gateway。
菜单服务
定位服务
在菜单中创建解析器我想获取位置数据
我熟悉@key、@external、extends。但这适用于类型对象,不适用于输入类型
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-advanced和https://www.apollographql.com/docs/federation/performance/caching/)?
graphql - 如何考虑联合服务
我们对联邦图方法还很陌生,如果我们试图通过将其拆分为更小的实体来使其过于复杂,我们希望能得到一些反馈。
例子:
我们有一个Ticket
:
我们有一个Category
我们现在需要实现一种列出待售产品的方法,并设置 listPrice 等。将来甚至是出价。所以我的想法是创建一个新的联合服务,处理listedProducts
如下:
到目前为止,一切都很好。但是我遇到麻烦的地方是我只想在 Category 实体下呈现listedProducts。这将需要一个 3 路参考才能解决,如果不直接在服务之间进行通信,我将如何做到这一点?
预期结果:
typescript - 将 Gateway 的解析器导出到文件中
我正在构建一个联合图“网关”,并希望将网关的联合解析器导出到一个文件中以供以后使用
有一种叫做executor
我们可以得到的东西:
使用上面的代码,我可以提取网关的联合模式。如何将网关的联合解析器提取为TypeDefs
or DocumentNode
?executor
这里有什么作用吗?
graphql - 如何使用 GraphQL 联合实现 Relay 节点查询
我们正在尝试使用Apollo federation实现Relay 节点查询。由于 Apollo 不知道 Relay,我们必须在一些服务(Node Resolution Service)中实现节点查询
问题是节点解析服务不知道其他服务子图中定义的任何实现类型。
Apollo 网关向节点解析服务发送如下请求
查询验证失败,因为服务不知道任何关于TypeFromAnotherService
. 我们能够实现节点查询,因为我们在 ID 中编码了类型,但我们不知道如何修复验证。
- 我们可以根据联合模式动态生成模式。这个好像用在这里但是感觉很麻烦
- 关闭验证并信任 Apollo GW 验证。我们不喜欢它,而且似乎在我们在后端使用的Netflix DGS中是不可能的。
任何想法如何使中继节点查询与联邦一起工作?
graphql - 源 GraphQL API:HTTP 错误 400 错误请求
我已经建立了一个可通过网关访问的阿波罗联盟架构。我想使用官方插件gatsby-source-graphql通过 gatsby 访问它。我遵循了他们的文档并尝试将插件包含在“简单”示例中。
当我yarn build
在我的 gatsby 项目上运行时,我得到以下终端输出:
我的 gatsby-config.js 是这样的:
错误“Source GraphQL API: HTTP error 400 Bad Request”非常模糊,我无法得到更详细的消息错误。
我能做些什么来更好地理解这个错误并解决它?
graphql - 传递一个变量来解析 Apollo Federation 中的引用
我有 2 个微服务:1- 用户 2- 产品
另一方面,我有:
我正在寻找一种将“语言”变量从用户发送到产品的方法,以便以该特定语言获取产品详细信息。