使用 Node.js 实现基于 GraphQL 的 API 教程

阅读时长 5 分钟读完

GraphQL 是一种用于 API 的查询语言和运行时环境。相比于 RESTful API,GraphQL 更加灵活和可扩展。在前端开发中,使用 GraphQL 可以实现更加高效和简洁的数据交互。

在本篇文章中,我们将介绍如何通过 Node.js 实现基于 GraphQL 的 API。

准备工作

在开始使用 GraphQL 之前,我们需要准备一些工具和环境:

  1. 安装 Node.js
  2. 创建一个新的 Node.js 项目,并初始化 package.json 文件
  3. 安装 graphqlexpress-graphql 模块

创建 GraphQL API

接下来,我们开始创建一个简单的 GraphQL API。在这个 API 中,我们将展示一个简单的查询模型,并返回一些示例数据。

定义 GraphQL Schema

首先,我们需要定义一个 GraphQL schema,用于描述我们的数据模型和查询方式。在一个 GraphQL schema 中,我们可以定义多个 type 和 query,以及它们之间的关联。

在本例中,我们定义了一个 Book type 和一个 Query query。Book type 表示一本书的数据模型,包括 idnameauthor 三个属性。Query query 表示一个查询,它可以返回所有的书籍列表。

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

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

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

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

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

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

创建 Express 应用

在定义好 GraphQL schema 后,我们需要创建一个 Express 应用,并将 GraphQL schema 和路由绑定。在 Express 应用中,我们使用 express-graphql 模块来处理 GraphQL 请求。

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

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

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

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

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

在上面的代码中,我们定义了一个 graphqlHTTP 中间件,并将 GraphQL schema 传递进去。graphiql 参数表示是否启用 GraphQL 的 GraphiQL IDE,用于开发和调试 GraphQL API。

测试查询

完成上述步骤后,我们就可以测试我们的 GraphQL API 了。在浏览器中打开 http://localhost:3000/graphql 页面,会出现 GraphQL 的 GraphiQL IDE。在控制台中输入以下查询语句,即可查询所有书籍列表:

我们将得到以下结果:

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

总结

本篇文章中,我们介绍了如何通过 Node.js 实现基于 GraphQL 的 API。通过使用 GraphQL,我们可以更加灵活和简单地实现 API 的查询和返回。在实际应用中,我们可以根据实际需求进一步扩展我们的 GraphQL schema 和 resolvers。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/650282ae95b1f8cacdfc912a

纠错
反馈