一步步教你实现 GraphQL 服务器

阅读时长 6 分钟读完

一步步教你实现 GraphQL 服务器

GraphQL 是一个用于构建 API 的查询语言和运行时,其强大的数据查询和灵活性,已经在前端领域得到了广泛的应用。今天我们将从头开始构建一个 GraphQL 服务器,具体实现过程如下:

  1. 安装依赖

首先,我们需要使用 Node.js 来创建我们的 GraphQL 服务器。通过运行以下命令在您的项目文件夹中安装所需的依赖项:

解释一下上述依赖包的作用:

  • express 是一个流行的 Node.js 框架,用于快速构建 Web 应用程序。
  • graphql 是一个 JavaScript 实现的 GraphQL,用于处理 GraphQL 查询和类型定义。
  • express-graphql 是一个用于连接 GraphQL 和 Express 的中间件。
  1. 创建数据模型

在我们开始创建 GraphQL 服务器之前,需要有一个数据模型,表示我们将存储和提取数据的方式。我们将创建一个名为 users 的简单数据模型。下面是这个数据模型的代码:

该代码将三个用户添加到 users 数组中,每个用户都有 id、name 和 age 属性。

  1. 创建类型定义

接下来,我们需要创建类型定义。类型定义告诉 GraphQL 服务器你要提取什么数据,以及它应该如何查询这些数据。我们将在类型定义中创建一个名为 User 的对象类型,以便可以在 GraphQL 中查询用户数据。以下是该类型定义的代码:

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

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

该代码创建名为 UserType 的 GraphQLObjectType,该类型具有三个字段:id、name、age。每个字段都具有自己的类型。

  1. 创建查询定义

现在,我们需要定义查询操作。在我们的示例中,我们将创建一个名为 users 的根查询,以便可以查询 users 数据模型中的所有用户。以下是查询定义的代码:

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

该代码创建 GraphQLObjectType,类型名称为 Query,具有一个名为 users 的 fields 对象。users 对象返回一个列表类型的 UserType,并使用 resolve 函数返回我们的 users 数据模型。

  1. 创建 GraphQL Schema

现在,我们将创建一个 GraphQL Schema,该 Schema 将使用我们的类型定义和查询定义。以下是我们创建的代码:

该代码将我们的根查询对象(RootQueryType)作为参数传递给了 GraphQLSchema 构造函数,以便我们可以将它们一起使用。

  1. 创建 Express 应用程序

现在,我们将使用 Express 框架创建一个应用程序。所需的步骤如下:

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

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

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

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

该代码使用 express() 函数创建 Express 应用程序实例。接下来,我们使用 graphqlHTTP 中间件将 /graphql 路径与 GraphQL Schema(schema)进行关联。我们还启用了 graphiql,它是一个用于测试和调试的 GraphiQL IDE。最后,我们通过设置一个端口来启动应用程序,并在控制台输出成功消息。

  1. 测试 GraphQL 服务器

现在我们已经创建了 GraphQL 服务器,首先我们可以在浏览器中访问 http://localhost:4000/graphql,这将打开 GraphiQL IDE。在 GraphiQL 命令行中输入以下代码:

点击运行按钮,即可看到如下的返回结果:

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

恭喜,您已成功创建了自己的 GraphQL 服务器!

总结

在这篇文章中,我们一步步地创建了一个 GraphQL 服务器,让您能够更好地理解 GraphQL 并在您的应用程序中使用它。我们安装了必要的依赖项,创建了一个数据模型,定义了 GraphQL Schema 和 Type,并使用 Express 应用程序在本地运行了它。同时我们还使用了 GraphiQL IDE 测试了 GraphQL 服务器,并成功地返回了数据。希望这篇文章能够对正在学习 GraphQL 的开发者起到一些帮助作用。

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

纠错
反馈