使用 Express + Apollo-Server 实现可扩展的 GraphQL API

GraphQL 是一种用于 API 的查询语言,它使得客户端可以精确地请求需要的数据,而不需要获取整个数据集。这使得 GraphQL 成为一种非常灵活和可扩展的 API 实现方式。在本文中,我们将介绍如何使用 Express 和 Apollo-Server 来构建可扩展的 GraphQL API。

安装依赖

我们首先需要安装一些必要的依赖:

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

创建 Express 应用

我们使用 Express 来创建一个 HTTP 服务器。在 app.js 文件中,我们可以这样初始化一个 Express 应用:

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

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

创建 GraphQL Schema

在 GraphQL 中,我们需要定义一个 Schema 来描述我们的数据结构和 API。我们可以使用 gql 函数来定义我们的 Schema。在本例中,我们创建一个简单的 Schema,用于查询和修改用户数据:

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

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

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

创建 Resolver

Schema 只是一种描述数据结构和 API 的方式,我们还需要实现 Resolver 来处理查询和修改请求。在本例中,我们创建一个简单的 Resolver,用于查询和修改用户数据:

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

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

创建 Apollo-Server

现在我们可以使用 Apollo-Server 来将 Schema 和 Resolver 集成到我们的 Express 应用中。我们可以这样初始化一个 Apollo-Server:

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

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

启动服务器

我们现在可以启动我们的服务器,监听来自客户端的请求:

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

查询和修改数据

现在我们可以使用任何 GraphQL 客户端来查询和修改我们的用户数据。例如,我们可以使用 GraphiQL 工具来查询和修改数据。我们可以在浏览器中访问 http://localhost:4000/graphql 来打开 GraphiQL 工具。

查询所有用户:

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

查询指定用户:

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

创建新用户:

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

更新用户:

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

删除用户:

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

总结

在本文中,我们介绍了如何使用 Express 和 Apollo-Server 来构建可扩展的 GraphQL API。我们创建了一个简单的 Schema 和 Resolver,用于查询和修改用户数据。我们还介绍了如何使用 GraphiQL 工具来查询和修改数据。这个例子只是一个简单的示例,你可以根据你的需求来定义更复杂的 Schema 和 Resolver。

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