使用 Express.js 和 GraphQL 构建 API 的最佳实践

在当今的 Web 开发中,API 是非常重要的一部分。API 可以使得前端可以和后端进行数据的交换和通信,而且随着 Web 应用的不断发展,API 也不断在改进和完善。本文将介绍如何使用 Express.js 和 GraphQL 构建 API 的最佳实践,并附上代码示例。

什么是 Express.js 和 GraphQL

Express.js 是一个强大的 Web 应用框架,它基于 Node.js 平台,并且可以快速构建具有可扩展性的 Web 应用程序。而 GraphQL,它是一种用于 API 开发的查询语言和运行时,可以更好地满足复杂应用程序的需求。

Express.js 和 GraphQL 之间的协作让我们可以构建出高性能、可扩展、易于维护和灵活的 API。

使用 Express.js 构建 API

由于 Express.js 的流行,它已经成为了开发 Web 应用的首选框架之一。其主要优点之一是可扩展性和灵活性,可以轻松地构建出具有复杂功能的 Web 应用程序。

下面是一个简单的 Express.js API 实现示例:

----- ------- - -------------------
----- --- - ----------
----- ---- - -----

------------------------

------------ ----- ---- -- -
  --------------- ---------
---

---------------- -- -- -
  -------------------- --- --------- -- ---------------------------
---

在这里,我们首先使用 require 引入了 Express.js,然后在创建一个 Express 应用程序的实例,并监听端口。在这里,我们使用 app.get('/') 来处理 HTTP GET 请求,并返回一个字符串响应。

使用 GraphQL 构建 API

GraphQL 是一种用于 API 开发的查询语言和运行时,它是由 Facebook 开发并开源的,旨在为应用程序开发提供更好的查询和多字段数据获取支持。

下面是一个简单的 GraphQL API 实现示例:

----- ------- - -------------------
----- - ----------- - - ---------------------------
----- - ----------- - - -------------------

----- ------ - -------------
  ---- ----- -
    ------ ------
  -
---

----- ---- - -
  ------ -- -- ------ -------
--

----- --- - ----------
------------------- -------------
  ------- -------
  ---------- -----
  --------- -----
----

---------------- -- -- -
  -------------------- - ------- --- ------ -- --------------------------------
---

在这里,首先我们定义了一个 GraphQL schema,包含了一个 hello 字段。接着,我们创建了一个 root 对象,用于定义字段的实现。最后,我们将构建好的 schema 和 root 对象传递给 graphqlHTTP,以便创建出 GraphQL API 服务器。

结合使用 Express.js 和 GraphQL

我们已经分别实现了 Express.js 和 GraphQL 的 API 示例,下面我们将讨论如何结合使用这两种工具,构建出高性能、可扩展和可维护的 API。

安装相关库

首先,我们需要安装一些 npm 库:

--- ------- ------ ------- --------------- -------

实现 Express-GraphQL

下面是基于 Express.js 和 GraphQL 的实际示例,我们将使用 Express.js 来构建 HTTP API,然后使用 GraphQL 来在我们的 API 中实现查询。

----- ------- - -------------------
----- - ----------- - - ---------------------------
----- - ----------- - - -------------------

----- --- - ----------

-- -- ------
----- ------ - -------------
  ---- ----- -
    ------ ------
  -
---

-- -- ---------
----- ---- - -
  ------ -- -- ------ -------
--

------------------- -------------
  ------- -------
  ---------- -----
  --------- -----
----

-- ----
----- ---- - ---------------- -- -----
---------------- -- -- -
  -------------------- ------ -- -- --- ------- -- ----------
---

在这个示例中,我们在 app.use() 中定义了一个 GraphQL 中间件,用于处理所有 /graphql 请求。我们使用 graphqlHTTP() 作为 GraphQL 服务器,并传递 schema 和 root 参数。

查询数据

我们的 GraphQL API 现在已经可以正常工作了,接下来我们将尝试使用 GraphQL 查询数据。

在浏览器上打开 http://localhost:3000/graphql,可以看到一个强大的 GraphiQL 工具,它提供了探索 API 和运行查询的良好体验。然后在左侧的编辑器中输入以下查询:

-
  -----
-

然后按下运行按钮,您应该可以在右侧的结果窗格中看到:

-
  ------- -
    -------- ------ -------
  -
-

这就完成了我们的第一个 GraphQL 查询。

结论

Express.js 和 GraphQL 都是非常流行的 Web 技术,并且可以谓得上是 Node.js 开发的金标准。结合使用这两种技术可以构建出高性能和可扩展的 API。本文介绍了使用 Express.js 和 GraphQL 的最佳实践,并给出了实际代码示例,希望能够帮助你快速入门这两种技术,也为你日后的 Web 开发提供一些指导。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67383f0d317fbffedf0f17c5