从零到 GraphQL:实战指南

阅读时长 9 分钟读完

从零到 GraphQL:实战指南

GraphQL 是一种新兴的 API 查询语言,它可以让前端开发者更加高效地与后端进行数据交互。在本篇文章中,我们将会深入探讨 GraphQL 的基本概念以及如何使用 GraphQL 构建一个完整的前端应用程序。

第一步:安装 GraphQL

在开始使用 GraphQL 之前,我们需要先安装它。你可以通过 npm 或者 yarn 来安装 GraphQL:

或者

第二步:了解 GraphQL 的基本概念

在使用 GraphQL 之前,我们需要了解一些基本概念。GraphQL 由三个基本部分组成:

  1. Schema:定义了所有可查询的类型和字段。

  2. Query:用于从服务器获取数据的查询语句。

  3. Mutation:用于修改服务器上数据的语句。

第三步:构建一个 GraphQL 服务器

现在,我们已经了解了 GraphQL 的基本概念,让我们来构建一个 GraphQL 服务器。在本例中,我们将使用 Node.js 和 Express,但是你也可以使用其他语言和框架。

首先,我们需要创建一个 Express 应用程序:

接下来,我们需要创建一个 GraphQL 端点。我们将使用 Express 的中间件来处理 GraphQL 查询和突变:

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

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

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

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

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

现在,我们已经创建了一个 GraphQL 端点,并可以通过浏览器访问它。当你在浏览器中输入 http://localhost:4000/graphql 时,你应该能够看到 GraphiQL 工具。

第四步:编写查询和突变

现在,我们已经创建了一个 GraphQL 服务器,让我们编写一些查询和突变。我们将创建一个简单的查询,用于获取“Hello World!”消息。在我们的 schema 中,我们定义了一个名为“hello”的查询类型:

我们还需要在 root 对象中定义一个“hello”函数,它将返回我们的消息:

现在,我们可以在 GraphiQL 工具中输入以下查询:

当我们按下“运行”按钮时,我们将获得以下响应:

现在,我们已经成功地从 GraphQL 服务器获取了数据。接下来,我们将创建一个突变,用于向服务器添加新数据。

在我们的 schema 中,我们定义了一个名为“createUser”的突变类型:

我们还需要在 root 对象中定义一个“createUser”函数,它将创建一个新的用户:

现在,我们可以在 GraphiQL 工具中输入以下突变:

当我们按下“运行”按钮时,我们将获得以下响应:

现在,我们已经成功地使用 GraphQL 突变向服务器添加了新数据。

第五步:使用 GraphQL 客户端

现在,我们已经成功地创建了一个 GraphQL 服务器,并编写了一些查询和突变,让我们来看看如何在前端使用 GraphQL。我们将使用 React 和 Apollo 客户端来创建一个简单的前端应用程序。

首先,我们需要安装 Apollo 客户端:

或者

接下来,我们需要创建一个 Apollo 客户端:

现在,我们已经创建了一个 Apollo 客户端,并可以使用它来发送查询和突变。

接下来,我们将编写一个简单的 React 组件,用于获取“Hello World!”消息。我们将使用 Apollo 的 useQuery 钩子来发送查询:

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

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

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

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

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

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

现在,我们已经成功地使用 Apollo 客户端从 GraphQL 服务器获取了数据。

接下来,我们将编写一个简单的 React 组件,用于向服务器添加新数据。我们将使用 Apollo 的 useMutation 钩子来发送突变:

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

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

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

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

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

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

现在,我们已经成功地使用 Apollo 客户端向服务器添加了新数据。

结论

在本篇文章中,我们深入探讨了 GraphQL 的基本概念,并使用 Node.js、Express、React 和 Apollo 客户端构建了一个完整的前端应用程序。通过学习本篇文章,你应该能够更加高效地与后端进行数据交互,并使用 GraphQL 构建更加可靠和可扩展的应用程序。

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

纠错
反馈