问题标签 [graphql-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.
graphql - GraphQL 联合:如何消费,而不是扩展
我有一个返回Product
s 的服务,我可以通过 GraphQL Federation 在返回Review
s 的服务中扩展它。审查服务取决于Product
s,这种解耦简直太棒了!
我还有一个订单服务,它存储(除其他外)OrderItem
具有productId
:
现在我希望客户端也能够直接从Product
被引用的字段中选择任何字段productId
:
如果我编写了一个普通的解析器来添加该product
字段,我将不得不复制完整的Product
模型(并在更改时更新订单服务Product
)。我不想那样。我也想在这里利用联邦。
我希望订单服务扩展(并因此依赖)Product
,但只知道它的 id,而产品服务必须不知道任何关于订单服务的信息。所以这是在审查服务中看到的依赖关系的反转。我不想从另一个服务添加到模型中,我希望客户端能够使用它,而我的服务不知道细节。
我认为这种方式应该更容易,但我太盲目了,看不到我需要做什么!我找不到这样的例子或教程或任何东西。
我将衷心感谢您的帮助!
graphql - 联合 GraphQL 模式验证
我在我的项目中创建了 3 个微服务并实现了 GraphQL Netflix DGS 联合框架。https://netflix.github.io/dgs/ 作为一家公司,我们拥有来自不同团队的不同微服务的 30 多个模式。但是,如果模式类型名称在不同的微服务中相互重复,我们会在 Apollo 网关中遇到运行时错误。我想知道如何验证模式?是否有任何引擎/库/概念来验证多个微服务等上的联合 GraphQL 模式?我正在检查架构注册表,但看起来它是用于存储架构和版本控制等,而不是完全验证架构。示例架构和错误:服务 1 中的架构:
服务 2 中的模式:
在上述两个模式中,模式类型“Info”在两个微服务中是相同的。通过 ApolloGateway 实现这两个服务后,它抛出运行时错误:“此数据图缺少有效配置。无法组合有效模式。发现以下组合错误:只能有一种名为“信息”的类型
typescript - GraphQL Playground 引导循环(Nestjs)
我正在尝试使用 GQL Playground。我加入了一个迄今为止从未使用过它的团队,每当我点击 时http://localhost:8001/graphql
,我都可以看到 GQL Playground 加载徽标,但它正在引导循环。
我可以看到他们正在使用 GQL Federation(但我不知道它是如何工作的):
如果我尝试添加以下 GraphQLModule,应用程序会崩溃:
我有一个 Docker 配置。它可能会干扰,但我不确定。
我怎样才能让 GQL Playground 正常工作?
graphql - 使用 API 密钥查询 GraphQL 微服务?
我在这两个微服务之上开发了两个 Netflix DGS GraphQL 微服务和 Apollo Gateway,使它们成为一个联合的 graphql。我有一个客户端应用程序正在尝试查询两个 graphql 微服务。并且这两个微服务都有一个唯一的 API 密钥。我们如何从客户端或 Apollo 服务器为多个微服务分配 API 密钥?当客户端使用 API 密钥查询多个微服务时,服务器可能会忽略 API 密钥。是否有处理 API 密钥管理的最佳实践?
graphql - Graphql 联合与模式拼接。何时选择一个而不是另一个
我对这两个概念都很陌生,所以如果它是基于意见的,请原谅。目前,我正在研究 graphql-tools 包提供的 Apollo Federation 和模式拼接,尽管我猜它适用于类似的包。是否可以创建一个表格之类的东西来描述某些要求/条件以使其优先于另一个?
jestjs - 以开玩笑的方式运行 e2e 测试时无法 POST /graphql (404) 错误(GraphQL Federation)
我正在尝试在 Nest.js 应用程序中使用 supertest + jest 端到端测试我的 graphql 服务,但不断收到此错误:
错误:无法 POST /graphql (404)
我已经尝试了很多事情,但由于该错误而无法完全运行测试。
下面是我的测试文件:
以下是登录控制台后出现的错误:
node.js - Apollo 服务器联盟与 graphql-shield
我graphql-shield
用来保护一个subgraph
.
在我的构建过程中,我rover CLI
用来更新supergraph schema
Apollo Studio 中的:
更新失败,rover
因为权限屏蔽引发Not Authorised!
错误。
我如何保护subgraph
并graphql-shield
允许SubgraphIntrospectQuery
操作?
我了解可以将承载令牌添加到流动站自省命令:
但是,我无法在构建过程中生成访问令牌。
javascript - Graphql Federation:JS 测试框架
我正在寻找 JS 测试框架或一些解决方案来测试 GraphQL 联合实施。
我当前的实现是在 Apollo Server、Gateway 和 subgraph 中。
我想测试涉及多个子图的联合查询。这个堆栈有什么建议吗?
graphql - 使用 google pub/sub 和 Graphql federation 的事件驱动架构
我们正在设计一个使用 Graphql federation 和 google pub/sub 的微服务架构来处理服务之间的相互通信。Graphql Federation 将用于使用 REST api 调用从客户端查询数据。
当涉及到多个微服务中的 Graphql 突变时(仍然客户端会发送 http 请求进行突变),将使用 google pub/sub。我对这个架构有几个问题?
- 它是一个好的架构吗(因为我们使用 Graphql 联合使用 http 调用来获取数据,并使用 pub/sub 来处理服务中的其余操作)?
- 当涉及到事件驱动架构时,客户端应该如何工作?希望我们可以使用 REST 调用从客户端获取/更新数据,还是应该对每个操作使用 pub/sub?