gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 05:55:10 25 4
gpt4 key购买 nike

我们正在努力实现 Relay node queryApollo federation .由于Apollo并不知道Relay,我们不得不在一些服务(Node Resolution Service)中实现节点查询

interface Node {
id: ID!
}

type Query {
node(id: ID!): Node!
}

问题是节点解析服务不知道任何实现类型,因为它们在其他服务子图中定义。

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

{node(id:"dHlwZUZyb21BU2VydmljZTox"){__typename ...on TypeFromAnotherService{id __typename}}}

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

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

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

最佳答案

我们通过实现独立的节点解析器解决了这个问题。它执行以下操作:

  1. 检查查询并即时生成模式,以防 Apollo 在片段中使用类型。节点解析器基本上将 TypeFromAnotherService 添加到架构中。
  2. 节点解析器从 ID 中提取类型并生成响应。

我们正在考虑开源服务,有人感兴趣吗?

关于graphql - 如何使用 GraphQL federation 实现 Relay 节点查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69526286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com