GraphQL for Real:如何在现实项目中使用 GraphQL

前端开发越来越被分化成了更小的模块,每个模块都承担着不同的职责。数据查询是所有模块都需要处理的主要任务之一。在过去,我们使用 RESTful API 来进行数据查询,但是随着应用程序变得更加复杂,RESTful API 的弊端也越来越明显。GraphQL 是一个轻量级的查询语言,旨在提供更好的API效率,更好的API编写方式 。这篇文章将重点介绍如何使用 GraphQL 来处理现实项目中的数据查询。

理解 GraphQL

GraphQL 是一个由 Facebook 开发的查询语言,它允许客户端指定需要获取哪些信息而不是服务端来决定。这使得客户端请求的结果更加有效,更容易控制。

与 RESTful API 不同,GraphQL 从服务端获取数据时不需要多次请求。当你使用 RESTful API 时,可能需要发出多个请求来获取来自不同资源的相关信息。但是使用GraphQL,可以一次请求获取所有数据。

GraphQL 允许用户创建自定义高级查询,也更灵活,可以快速响应需求变化。

实现 GraphQL 在项目中

为了实现 GraphQL,我们需要做以下两个步骤:

步骤一:编写 GraphQL schema

GraphQL 架构由类型定义和解析函数组成。

类型定义描述了查询中可用的字段。解析函数处理查询请求并返回数据。

接下来,让我们看一个示例代码,以便更好地了解 GraphQL 架构:

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

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

在上面的代码中,我们定义了两个类型:User 和 Query。User 表示用户信息,包括 id、firstName、lastName、email。Query 类型是 GraphQL 的一种特殊类型,它表示根查询对象。

在 Query 类型中,我们定义了两个查询:user 和 users。user 查询接受 id 参数并返回唯一的用户信息。users 查询返回所有用户信息。

以下是 user 查询的解析函数示例代码:

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

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

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

上述代码将如何处理查询请求:

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

在上述查询语句中,我们请求从users数组中找到ID为1的用户的firstName、lastName和email。

步骤二:编写 GraphQL API

我们可以使用现有的库,例如 Apollo GraphQL,来编写 GraphQL API。Apollo GraphQL 提供了多种工具来帮助你从 GraphQL schema(定义好的对象类型)生成可操作的 API。

以下是如何使用 Apollo Server 快速搭建 GraphQL API 的示例代码:

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

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

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

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

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

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

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

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

执行上述代码后,我们可以通过访问 http://localhost:4000/graphql 来查询 API。

结论

GraphQL 是一个优秀的工具,值得我们在项目中使用。在项目中使用 GraphQL,需要编写 GraphQL schema 和编写 GraphQL API 两个步骤,本文也讲述了如何实现。如果你的应用对数据处理有很高的要求,那么使用 GraphQL 可能是个不错的选择。

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