2. 设置项目
3m

概述

让我们来了解一下我们在本系列中将使用的项目。在本课中,我们将

  • 检查我们目前的 API 和我们的未来计划 🍲🥘
  • 了解如何帮助简化和加速应用程序开发

我们目前的 API...

推出 诗意美食 🍽️,这是面向富有冒险精神的厨师和美食家爱好者的 GraphQL API!

Poetic Plates API title

是否曾经苦恼于不知道晚餐做什么,没完没了地浏览视频和网站,然后越来越饿?

诗意美食让你可以尝试由 AI 生成的食谱,这些食谱包含充满诗意的说明,以及美味(或可能惨不忍睹)的结果。有了极其详细且有时有用的说明,烹饪从未如此有趣!

API 架构

诗意美食 API 使用 JavaScript 编写,并使用 。代码库目录如下所示:

📦 poetic-plates-api
┣ 📂 src
┃ ┣ 📂 datasources
┃ ┣ 📂 resolvers
┃ ┣ 📄 index.js
┣ 📄 package.json
┣ 📄 schema.graphql
┗ 📄 README.md

如果您以前构建过 API,那您可能对此很熟悉!它是一个 ,具有架构、。以下是重要文件的快速概览:

  • schema.graphql:定义类型的架构和 ,这些字段描述了食谱内容。
  • resolvers:定义 函数以用于架构中的
  • datasources:在真实世界应用程序中,这个 可能会连接到 REST API 或数据库,但我们处于教程层面,所以使用同一目录中的 JSON 文件中的硬编码数据。
  • index.js:创建一个 ApolloServer实例,它使用上述三个组件。

您无需克隆存储库,但您可以自由地浏览代码库,如果您好奇,可放心浏览。

已将 Poetic Plates 托管在 https://poetic-plates-recipes-api.herokuapp.com/处,准备好接收查询并返回数据!

想要尝试一下吗?打开一个新终端,并从主页粘贴此 curl 命令。我们可以调整 以询问随机食谱的名称。

curl --request POST \
--header 'content-type: application/json' \
--url 'https://poetic-plates-recipes-api.herokuapp.com/' \
--data '{"query":"query GetRandomRecipe {\n randomRecipe {\n name\n readyTime\n servings\n ingredients {\n text\n }\n }\n}"}'

然后我们将获得数据返回:一个随机食谱,其中包含烹饪所需时间和所需食材的信息!

我们如何使用 Poetic Plates

目前,该 API 是一组小食谱。我们可以执行以下操作

  • 要求提供一个随机食谱
  • 要求提供其数据库中食谱的完整列表
  • 要求提供最近添加的食谱
  • 查看食谱的配料、烹饪时间、说明等

但我们对 Poetic Plates 有宏伟的计划!我们设想一个未来的愿景,用户可以在其中添加他们自己的食谱、创建合集且分享他们的想法。我们可以提供有关每种配料的更多详细信息,或根据已放入食品柜中的物品推荐特定食谱。可能性是无限的!

在我们致力于这些新功能并拓展我们的架构时,我们还希望保持我们的当前功能平稳运行。我们希望跟踪我们 API 的运行状况,并监控以下内容:哪些 未被使用,哪些是请求最多的 ,或者 的哪些部分太慢。使用它的客户端遇到什么问题?我们可以改进哪些方面?

与 GraphOS 协作

帮助我们解决这些问题。

要开始使用 ,我们将使用其 Web 界面,Studio。有另外两种方式可以连接到 Rover,一个在本地或 CI/CD 管道中使用的命令行界面;以及 Platform API,这是一个 API,用于在您自己的应用程序中执行 操作。

在本课程中,我们将主要使用 Studio,因此您需要一个帐户来继续学习!

创建 Apollo 帐户

如果您尚未创建您的 Apollo 帐户,请访问 https://studio.apollographql.com/signup。您可以使用电子邮件和密码注册,或使用现有的 GitHub 帐户注册。您还可以创建自己的组织。

完成后,您就一切准备就绪,可以使用

任务!

练习

以下哪些是与 GraphOS 交互的有效方法?

要点

  • 帮助您构建、管理和扩展您的 API。
  • 交互有三种方式:Studio、和平台 API。
  • 在本教程中,我们将使用一个名为 Poetic Plates 的现有 API 🍽️,这是为冒险的厨师和美食家提供的 GraphQL API!

接下来

好了,我们已准备好将 Poetic Plates 提升到一个新的水平。将把我们的 API 转换为联邦图。如果您不熟悉这个联邦架构,别担心!我们将在下一课中涵盖所有内容。

上一步

分享您对本课程的疑问和意见

您的反馈有助于我们进行改进!如果您遇到困难或困惑,请告诉我们,我们将帮助您解决。所有评论都是公开的,并且必须遵循 Apollo 行为准则。请注意,已解决或已解决的评论可能会被删除。

您需要一个 GitHub 帐户才能在下面发布。没有一个帐户吗? 改用我们的 Odyssey 论坛发帖。