2m
概述
到目前为止,我们主要关注的是我们的子图。现在是 路由器 的时间了!
我们知道 路由器 使用 超图架构 来解析来自客户端的传入 GraphQL 操作。但是,这个过程究竟是如何运作的呢?
在本课中,我们将
- 追踪客户端请求穿越 超图 的旅程
- 描述 路由器 如何创建 查询计划 来解析跨越多个 子图 的 GraphQL 操作
GraphQL 操作穿越超图的旅程
让我们从头开始:从客户端请求开始。
步骤 1:客户端请求
首先,客户端发送一个 GraphQL 操作 到 路由器。客户端不知道哪些 字段 属于哪个 子图 —甚至不知道是否存在子图!
步骤 2:构建查询计划
路由器 查看 操作 中的 字段,并使用 超图架构 来确定哪些 子图 负责解析每个字段。
它使用这些信息来构建一个 查询计划,这是一个在 子图 上执行的更小的 GraphQL 操作 列表。 查询计划 还指定了子图操作需要执行的顺序。
步骤 3:执行查询计划
接下来,路由器 执行 查询计划,将更小的 GraphQL 操作 发送到它需要数据的每个 子图。
子图 解析 操作 的方式与任何其他 GraphQL 服务器 相同:它们使用它们的 解析器 和 数据源 来检索和填充请求的数据。
步骤 4:子图响应
子图 将请求的数据发送回 路由器,然后路由器将所有这些响应组合成一个 JSON 对象。
步骤 5:将数据发送回客户端
最后,路由器 将最终的 JSON 对象发送回客户端。这就是我们 操作 旅程的终点!
回顾
这是 GraphQL 操作 穿越 超图 的整个旅程,在一个图中总结:
练习
以下哪些陈述是正确的?
关键要点
- 路由器 使用 超图架构 来为传入的 查询计划 创建一个 GraphQL 操作。 查询计划 是一个更小的操作列表,路由器 可以执行这些操作来完全解析传入的操作。
- 路由器 通过在相应的 子图 上执行操作列表来执行 查询计划。
- 路由器 将来自 子图 的所有响应组合成一个 JSON 对象,然后将其发送回客户端。
下一步
接下来,我们将配置 路由器 以轮询 Apollo Uplink 获取我们的 超图架构,最后我们将开始 查询 我们的超图!
分享您关于本课的疑问和评论
您的反馈将帮助我们改进!如果您遇到问题或感到困惑,请告知我们,我们会提供帮助。所有评论均公开,必须遵守 Apollo 行为准则。 请注意,已解决或处理的评论可能会被删除。
您需要一个 GitHub 帐户才能在下方发布。没有帐户? 请在我们的 Odyssey 论坛中发布。