👋 欢迎来到起飞 IV!
欢迎你来到起飞第 IV 部分!我们一直在努力制作我们的 Catstronauts 应用程序,在服务器和客户端上深入探究 GraphQL。
到目前为止,我们只处理了从我们的 API 中检索数据。现在是时候转换思路,开始使用 GraphQL 突变来修改我们的数据了。
我们应用程序中的每个轨道都显示了它的被查看次数。我们希望每当用户从主页访问轨道页面时都增加此次数。
为此,我们将更新我们的模式以包括 mutations,了解针对我们的 mutation 响应的最佳实践。我们将编写我们的 resolvers以处理成功的响应和错误。最后在客户端,我们将使用一个名为 useMutation
的 React hook GraphQL server。
点火顺序…
前提条件
注意:在本课程中,我们使用 Apollo Server 3。如果你需要 引用 Apollo 文档在学习本课程的时候,请确保你正在查看 v3 文档集!
克隆存储库
在你选择的目录中,使用你喜欢的终端,克隆应用程序的启动库
git clone -b v1 https://github.com/apollographql/odyssey-lift-off-part4
注意:上面的 git clone
命令可能看起来与你习惯的命令略有不同。本课程使用启动代码库的 v1
。 单击此处访问此课程的最新版本。
项目结构
此存储库从起飞 III 停止的地方开始。我们的项目是一个全栈应用程序,后端应用程序位于 server/
目录中,前端应用程序位于 client/
目录中。
此外,您还会发现一个 final/
目录,其中包含您完成课程后项目的最终状态。请随时将其用作指南!
以下为文件结构
📦 odyssey-lift-off-part4┣ 📂 client┃ ┣ 📂 public┃ ┣ 📂 src┃ ┣ 📄 README.md┃ ┣ 📄 package.json┣ 📂 server┃ ┣ 📂 src┃ ┃ ┣ 📂 datasources┃ ┃ ┃┣ 📄 track-api.js┃ ┃ ┣ 📄 index.js┃ ┃ ┣ 📄 schema.js┃ ┃ ┣ 📄 resolvers.js┃ ┣ 📄 README.md┃ ┣ 📄 package.json┣ 📂 final┃ ┣ 📂 client┃ ┣ 📂 server┗ 📄 README.md
现在,在您最喜爱的 IDE 中打开存储库。
注意:本课程中的示例使用 npm
,但如果您愿意,也可以使用 yarn
。
让我们从服务器应用程序开始。
在终端窗口,导航至该存储库的 server
目录并运行以下命令,以安装依赖项并运行该应用程序:
npm install && npm start
如果一切顺利,您将会看到安装已完成,控制台中的消息也会指示服务器正在运行。
接下来是客户端应用程序。
在新终端窗口中,导航至存储库的 client
目录,并运行以下命令,以安装依赖项并启动该应用程序:
npm install && npm start
控制台中应该会显示大量输出,以及在 localhost:3000
运行的应用程序的链接。您可以导航到 https://127.0.0.1:3000,在浏览器中查看我们的主页,其显示多个音轨卡。
设置 Explorer
为了编写我们的查询,我们将在 Explorer 页中使用 Apollo Sandbox。Explorer 可以免费使用,并且它提供极好的开发功能,如互动 query 创建、query 历史记录和响应提示。这将使我们快速、愉快地创建自己的查询。
要在 Apollo Sandbox 中打开 Explorer,您可以 cmd+click
终端中的 URL(通过启动服务器)以在您的浏览器中将其打开,或者您可以在此处将其打开: https://127.0.0.1:4000。
在浏览器中,我们可以看到我们的服务器正在成功运行,其中包含一条消息提示我们查询它。让我们点击查询您的服务器来看到我们的 图表使用 Apollo Sandbox执行操作。
让我们开始吧!
分享你关于此课程的问题和评论
你的反馈有助于我们改进!如果你遇到了任何困难或感到困惑,请告诉我们,我们会帮助你解决。所有评论均为公开,并且必须遵循 Apollo 行为准则。请注意,已解决或已处理的评论可能会被移除。
你需要一个 GitHub 帐户才能在下方发帖。没有帐户? 转而发布在我们的 Odyssey 论坛中。