7. 路由器如何解析数据
2m

概述

到目前为止,我们主要关注的是我们的。现在是 的时间了!

我们知道 使用 来解析来自客户端的传入 。但是,这个过程究竟是如何运作的呢?

在本课中,我们将

  • 追踪客户端请求穿越 的旅程
  • 描述 如何创建 来解析跨越多个

GraphQL 操作穿越超图的旅程

让我们从头开始:从客户端请求开始。

步骤 1:客户端请求

首先,客户端发送一个 。客户端不知道哪些 属于哪个 —甚至不知道是否存在子图!

Step 1: The client sends a GraphQL operation to the router

步骤 2:构建查询计划

查看 中的 ,并使用 来确定哪些 负责解析每个字段。

The router uses the supergraph schema

它使用这些信息来构建一个 查询计划,这是一个在 上执行的更小的 列表。 还指定了子图操作需要执行的顺序。

The router builds a query plan

步骤 3:执行查询计划

接下来, 执行 ,将更小的 发送到它需要数据的每个

The router carries out the query plan

解析 的方式与任何其他 相同:它们使用它们的 来检索和填充请求的数据。

The subgraphs resolve the operations

步骤 4:子图响应

将请求的数据发送回 ,然后路由器将所有这些响应组合成一个 JSON 对象。

The subgraphs send back the requested data to the router

步骤 5:将数据发送回客户端

最后, 将最终的 JSON 对象发送回客户端。这就是我们 旅程的终点!

The router sends the final JSON object back to the client

回顾

这是 穿越 的整个旅程,在一个图中总结:

federated graph query animations

练习

以下哪些陈述是正确的?

关键要点

  • 使用 来为传入的 查询计划 创建一个 是一个更小的操作列表, 可以执行这些操作来完全解析传入的操作。
  • 通过在相应的 上执行操作列表来执行
  • 将来自 的所有响应组合成一个 JSON 对象,然后将其发送回客户端。

下一步

接下来,我们将配置 以轮询 Apollo Uplink 获取我们的 ,最后我们将开始 我们的超图!

上一页

分享您关于本课的疑问和评论

您的反馈将帮助我们改进!如果您遇到问题或感到困惑,请告知我们,我们会提供帮助。所有评论均公开,必须遵守 Apollo 行为准则。 请注意,已解决或处理的评论可能会被删除。

您需要一个 GitHub 帐户才能在下方发布。没有帐户? 请在我们的 Odyssey 论坛中发布。