概述
让我们开始设置项目!在本课程中,我们将扮演使用Apollo 联邦构建名为 FlyBy 的应用程序的 超级图的后台开发人员。
但首先,让我们想象一下,我们已被传送到了遥远的未来,在那里每个人都可以为了娱乐和冒险而穿越银河系……这就是 FlyBy 的用武之地。
在本课中,我们将
- 探索 FlyBy 的功能,它是本课程的演示应用程序
- 设置 FlyBy 启动代码
您将构建的内容:FlyBy
FlyBy 是一款 Web 应用程序,允许用户查看他们在星际旅行中访问过的地方。他们可以浏览其他太空旅行者访问过的所有地点的列表,查看每个地点的详细信息和评论,以及提交自己的评论。
想要预览?您可以浏览FlyBy 应用程序的最终版本。
像大多数应用程序一样,FlyBy 从小开始。但通过从一开始就使用 超级图 架构,我们可以随着应用程序和组织的必然增长而扩展 FlyBy 图。
为了构建 FlyBy 超级图,我们将:
- 发布两个 子图:
locations
和reviews
(第 4-6 课) - 设置 GraphOS 路由器(第 7-8 课)
- 更新 子图以在它们之间共享类型(第 9-14 课)
- 查看所有内容如何与前端整合(第 14 课)
让我们开始吧!
先决条件
FlyBy 在后端使用 Node.js,在前端使用 React。我们建议使用最新的 Node LTS 版本。要检查您的 Node 版本,请运行 node -v
。
您还需要熟悉以下内容
- 在终端中运行命令,例如在目录之间导航。
- 基本的 JavaScript 语法,包括编写函数和解构对象。
- GraphQL 和 Apollo 基础知识,例如如何定义模式、构建 解析器 函数以及编写 GraphQL 操作。(需要复习吗?请查看 奥德赛升空系列!)
✏️ 克隆仓库
注意:当您看到以 ✏️ 表情符号开头的标题时,这意味着它包含一些需要您完成的工作!
在您选择的目录中打开您喜欢的终端。
通过运行以下命令克隆 FlyBy 启动代码仓库
git clone https://github.com/apollographql/odyssey-voyage-I在您喜欢的 IDE 中打开仓库。(我们使用 VS Code。)
项目结构
FlyBy 仓库包含一个全栈应用程序,前端位于 client/
目录中,后端则分为三个服务器目录。每个服务器都在不同的端口上运行,因此您可以在本地机器上进行开发时同时运行它们。
在本课程中,我们将完全专注于服务器端代码。(客户端代码已经为您开发好了,因此您无需更改它。)
服务器的划分如下
服务器 | 端口 | 描述 |
---|---|---|
路由器 | 4000 | 路由器(客户端向其发送 GraphQL 请求的服务器)的后端代码。 |
subgraph-locations | 4001 | locations 子图的后端代码。 |
subgraph-reviews | 4002 | reviews 子图的后端代码。 |
注意:在本课程中,我们的 路由器 和我们的 子图 都位于同一个仓库中。但在生产应用程序中,它们可以被拆分,以便每个 GraphQL 服务器 获取自己的仓库。
启动代码还包含一个 final/
目录,其中包含课程结束时我们 超级图 的最终状态。随时将其用作参考!
✏️ 安装项目依赖项
为了完成启动代码的设置,请为每个 子图服务器 安装项目依赖项。
从命令行中,更改目录到
subgraph-locations
目录,并运行npm install
。更改目录到
subgraph-reviews
目录,然后再次运行npm install
。
现在不用担心 router
目录。我们将在接下来的课程中讨论如何设置这部分内容。
✏️ Apollo GraphOS 设置
本课程使用 托管联邦,这意味着 FlyBy 使用 GraphOS 来处理对我们 超级图 的更新。(关于这方面的更多信息将在本课程的后面介绍!)
要使用 托管联邦,我们需要拥有一个 Apollo GraphOS 帐户,并拥有一个 企业版计划。
如果您所在组织使用的是其他计划,您仍然可以跟着做,但无法完成某些动手练习。您也可以通过 注册免费企业版试用 来测试此功能。
✏️ Rover 设置
Rover 是一个命令行界面 (CLI) 工具,可帮助开发人员使用 图 并与 GraphOS 交互。它是一个方便且用途广泛的工具,可用于本地开发和 CI/CD。我们可以使用它来运行检查、将模式发布到模式注册表等等。
安装 Rover
打开终端并运行适合您计算机环境的安装命令
对于 Linux / Mac OS
curl -sSL https://rover.apollo.dev/nix/latest | sh对于 Windows PowerShell 安装程序
iwr 'https://rover.apollo.dev/win/latest' | iex注意:你可以在 Apollo 文档中找到其他安装方法。
通过在终端的任何位置运行
rover
来验证安装是否成功。如果它输出使用 Rover 的选项和子命令列表,那就太好了!CLI 已安装并可以使用。
认证 Rover
我们需要一个 API 密钥来认证 Rover!因为我们现在是在本地工作,所以我们将使用一个 个人 API 密钥。(还有另一种类型的 API 密钥,称为 graph API 密钥,用于 CI/CD 环境,我们稍后会介绍!)
在 Studio 中,点击右上角的个人资料图片,然后点击 个人设置。
点击 API 密钥。
点击 创建新密钥。
https://github.com给它起一个名字,比如 "本地开发"。
复制你的密钥——你将无法再次看到它!
在终端中,运行
rover config auth然后粘贴你的 API 密钥。
要检查它是否正常工作,请运行
rover config whoami你应该会看到你的个人资料信息显示出来。大功告成!
下一步
在下一部分中,我们将与前端团队联系,更深入地了解 FlyBy 的数据需求。
分享你对本课程的疑问和评论
你的反馈有助于我们改进!如果你遇到问题或困惑,请告诉我们,我们会帮助你。所有评论都是公开的,必须遵守 Apollo 行为准则。请注意,已解决或已处理的评论可能会被删除。
你需要一个 GitHub 帐户才能在下面发布。没有帐户? 请在我们的 Odyssey 论坛中发布。