GraphQL 是一种用于 API 的查询语言,它提供了一种更高效、更强大且更灵活的替代方案,可以替代 REST。它是由 Facebook 开发的,这是一个开源的技术,现在已经被广泛地用于前端开发中。
Fastify 是一个快速和低开销的 Web 框架,用于 Node.js。它具有优秀的性能和低开销的功能,因此,使用 Fastify 可以提高 Web 应用程序的性能。在这篇文章中,我们将学习在 Fastify 中使用 GraphQL 的方法。
安装 GraphQL
首先,让我们安装 GraphQL。您可以使用以下命令来安装它:
npm install graphql
创建 GraphQL Schema
现在,让我们在 Fastify 中创建一个 GraphQL Schema。GraphQL Schema 是一个描述 API 中可用的字段、类型和关系的结果。通常,一个 GraphQL Schema 包含查询和变异。查询是从 API 中获取数据的方式,而变异则是从 API 中修改数据的方式。
我们将创建一个 MongoDB 集合,并使用它来创建 GraphQL Schema。
-- -------------------- ---- ------- ----- ----------- - ------------------------------- ----- - ----------- - - ------------------- ----- --- - -------------------------------------------------------------- ------------------------ ----- ---- -- - -- ----- - ------------------- ---------------- - ----- -- - ---------------------------- ----- ---------- - ----------------------- ----- ------ - ------------- ---- ----- - -------- --------- ---- ------ ------ - ---- ---- - --- ------ ----- ------ ------ ------ - --- ----- ---- - - ----- ----- -- -- -- -- - ------ ----- -------------------- -- --- -- ------ ----- -- -- - ------ ----- ---------------------------- - -- ---
在上面的代码中,我们首先创建了一个 MongoDB 集合,并使用它来创建了我们的 GraphQL Schema。我们定义了两个查询,一个用于返回唯一用户的信息,另一个用于返回所有用户。
我们还定义了一个名为 User
的类型,并使用它来描述用户对象的属性。我们还定义了 id
、name
、email
三个字段,它们保存在我们的 MongoDB 集合中。
我们在 root
中定义了 user
和 users
两个函数。user
函数接受一个名为 id
的参数,并从 MongoDB 集合中获取唯一用户。users
函数返回 MongoDB 集合中的所有用户。
创建 Fastify Server
我们已经在 Fastify 中创建了一个 GraphQL Schema,现在我们将为它启动一个 Fastify 服务器。
-- -------------------- ---- ------- ----- ------- - ------------------- ----- - -------- -------- - - --------------------------- ----- ---- - ----- ----- --- - ---------- --------------------- - ------- ---------- ----- --------- ---- --- ---------------- -- -- - -------------------- --- ------ --------- -- ---- ---------- ---
在上面的代码中,我们首先在 Fastify 中创建了一个名为 app
的实例。我们注册了一个名为 graphql
的 Fastify 插件,它使用我们之前创建的 schema
和 root
。我们还打开了 GraphiQL 界面,这是一个图形界面,用于测试 GraphQL 查询。
最后,我们在 Fastify 服务器上启动了我们的应用程序,并在控制台中打印了一个消息。
在 GraphiQL 中测试
现在我们已经启动了 Fastify 服务器,可以在 GraphiQL 界面中测试我们的 GraphQL API。
在浏览器中打开 http://localhost:4000/graphiql
,将看到 GraphiQL 界面。在左侧面板中,您可以编写 GraphQL 查询。在下面的查询中,我们将使用 user
查询来查找带有 id
为 ‘1’ 的用户。
{ user(id: "1") { id name email } }
我们还可以使用 users
查询来获取所有用户的信息。
{ users { id name email } }
结论
在本文中,我们学习了在 Fastify 中使用 GraphQL 的步骤。我们创建了一个 MongoDB 集合,并使用它来创建我们的 GraphQL Schema。我们还创建了一个 Fastify 服务器,并在 GraphiQL 界面上测试我们的 GraphQL API。
GraphQL 提供了一种更高效、更强大且更灵活的替代方案,可以为前端开发提供更好的性能和更好的工作流程。Fastify 是一个快速和低开销的 Web 框架,用于 Node.js。通过此文章,你可以深入了解如何在 Fastify 中使用 GraphQL 的方法,帮助你在你的下一个Web项目中更好地发挥出这两个框架的优势。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6770bc25e9a7045d0d808847