概述
你已经开始了您的超级图之旅吗?
您可能从简单的起点开始:一个单一的 子图和一个 路由器。您享受过查询您所需的确切内容、获取您所请求的数据形状,甚至延迟较慢查询部分的感觉。您已经对模式进行了一些小的更改,根据用户反馈更好地满足其需求。
现在,您已经准备好扩展您的 超级图并在此基础上构建超级图所知名的分模块架构。
欢迎您,您来到了完美的教程!
在本课程中,我们将扩展我们的 超级图。我们将添加另一个 子图,并学习 GraphOS路由器如何创建和使用查询计划来 Resolve一个跨越多个子图的查询。我们还将通过使用 Rover 和 rover dev
命令进行本地开发。沿途,我们将探索更多 GraphOS 功能,这些功能可以帮助我们构建、维护和管理我们的 超级图。
这是关于 GraphOS 的本系列入门课程的第三门课程。如果您已经熟悉这些材料,无需参加该系列中的其他课程。查看以下学习者的先决条件,以评估您是否适合这门课程。
学习者的先决条件
您需要具备以下条件:
- 如果您想跟随课程项目,则需要GitHub账户和代码编辑器(我们使用VS Code)。
- 一个Apollo账户。如果没有,可以 在这里注册。
您需要知道以下内容:
- GraphQL 基础(使用模式、编写 resolvers)
- Supergraph 架构基础(什么是 router 和 subgraphs 以及它们是如何协同工作的)
- 终端使用(导航目录、运行命令)
- Git基础(提交更改、推送到远程仓库)
我们将使用JavaScript来修改我们的 subgraph 服务器,但您不需要对课程项目有深入的了解。
诗意的盘子超级图
诗意的盘子 🍽️ 是为冒险的厨师和美食爱好者提供的GraphQL API!目前,它提供由AI生成的具有诗意说明和美味(或灾难性的)结果的食谱。这些说明非常详细,有时也很有帮助,烹饪从未如此有趣!
在 GraphOS:基础知识 中,我们将诗意的盘子API转换成了一个 supergraph 架构。
一个超级图是一种模块化架构,由一个路由器和一个或多个子图组成。诗意的盘子目前有一个名为recipes
的子图。它还使用云端托管的GraphOS 路由器。
目前,海纳百川超级图可以帮助我们做诸如以下事情:
- 要求它提供随机配方
- 要求它提供其数据库中所有配方的完整列表
- 要求它提供最近添加的配方
- 查看配方中的食材、烹饪时间、说明等更多内容
在本课程中,我们将向超级图添加新功能。具体来说,我们正在添加有关厨房用品的信息:将食谱带入生命所需的锅、平底锅和厨房工具。我们有一些关于每件厨房设备外观的有趣信息(对烹饪新手来说),以及如何正确清洁它们。当然,所有这些信息将以诗意风格呈现 ✍️
我们非常期待更多地了解这个厨房用品空间,以及如何将其添加到我们的超级图!现在就让我们完成项目设置,这样我们就可以深入学习了!
项目设置
如果您已在2023年5月24日之后完成了GraphOS:基础知识和GraphOS:安全API交付,您已经准备好!您可以跳过本节,直接跳到课程末尾进行检查。
如果您在2023年5月24日之前完成了课程,您需要更新recipes
子图子图以包含新数据。展开下面的可折叠部分以找到您的附加说明。然后,跳到课程末尾进行检查。
如果您尚未完成任一课程,本节的其余部分将简要介绍快速入门。您需要
- 部署
recipes
子图 - 克隆
recipes
子图 - 在GraphOS上创建一个云超级图
- 安装和认证 Rover
部署 recipes
子图
开始,请点击下面的按钮 ⬇️
然后,按照Railway上的部署设置步骤操作。随意使用您选择的任何其他托管平台!
现在,您应该有一个URL,您的 recipes
子图服务器就在那里。
克隆存储库
下一步,我们将克隆 recipes
子图 的副本到我们自己的机器上。这应该连接到部署的 URL,以便你对你仓库的 main
分支所做的任何提交都会反映在部署中。
如果你使用的是 Railway,这将由系统为你处理。如果你使用的是你选择的其它平台,你可能需要执行一些额外的步骤。
创建云超级图
你需要在 GraphOS 上创建一个云 超级图。你之前克隆和部署的 recipes
子图将作为 超级图 的第一个子图。
安装和认证Rover
Rover是Apollo的命令行界面(CLI)工具,帮助开发人员与图和与GraphOS交互。这是一个方便多功能的工具,可用于本地开发和CI/CD。我们可以用它来运行检查,将模式发布到模式注册表,等等。
项目设置清单
关键要点
- 超图架构由一个或多个子图和一个路由器组成。
- Rover是Apollo的命令行界面(CLI)工具,它帮助开发者与图和与GraphOS交互。
接下来
准备好用一个新的子图让我们的supergraph焕发出新的活力吗?让我们开始吧! 🥘
分享你对本课程的疑问和评论
本课程目前处于
您需要GitHub账户来发表评论。没有吗? 请在我们的Odyssey论坛上发帖。