使用 Express.js 和 GraphQL 创建 API

阅读时长 6 分钟读完

Express.js 是一个流行的 Node.js Web 框架,用于构建 Web 应用程序和 API。GraphQL 是一种查询语言和运行时,用于构建 API。在本文中,我们将探讨如何使用 Express.js 和 GraphQL 创建 API。

准备工作

在开始之前,我们需要安装一些必要的工具和库。首先,确保您已经安装了 Node.js 和 npm。接下来,使用以下命令安装 Express.js 和 GraphQL:

创建 Express.js 应用程序

现在我们已经安装了必要的工具和库,我们可以开始创建我们的 Express.js 应用程序。在项目根目录中,创建一个名为 server.js 的文件,并添加以下代码:

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

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

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

这是一个非常简单的 Express.js 应用程序,它只是在根路由上发送“Hello World!”消息。现在,使用以下命令启动应用程序:

现在您可以在浏览器中访问 http://localhost:3000,并应该看到“Hello World!”消息。

添加 GraphQL 支持

现在我们已经创建了一个 Express.js 应用程序,让我们添加 GraphQL 支持。首先,我们需要定义一个 GraphQL 模式。在项目根目录中,创建一个名为 schema.js 的文件,并添加以下代码:

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

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

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

这个模式只有一个查询类型,hello,它将返回一个字符串。现在我们需要将这个模式与我们的 Express.js 应用程序集成。在 server.js 文件中添加以下代码:

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

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

这将将 /graphql 路由添加到我们的应用程序中,并使用 express-graphql 中间件将 GraphQL 查询路由到我们的模式。我们还将 rootValue 设置为一个包含我们的查询的对象。最后,我们设置 graphiql 选项为 true,以启用 GraphiQL 用户界面,该用户界面允许我们轻松测试我们的 API。

现在,使用以下命令重新启动应用程序:

现在您可以在浏览器中访问 http://localhost:3000/graphql,并应该看到 GraphiQL 用户界面。在查询编辑器中,输入以下查询:

然后按下“运行查询”按钮,您应该会在右侧面板中看到“Hello World!”消息。

添加更多查询

现在我们已经添加了一个查询,让我们添加一些更多查询。在 schema.js 文件中添加以下代码:

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

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

这将添加两个新的查询类型:randomrollDicerandom 将返回一个随机整数,rollDice 将返回一个数组,其中包含指定数量的骰子的指定面数的投掷结果。

现在我们需要将这些查询添加到我们的 rootValue 对象中。在 server.js 文件中添加以下代码:

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

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

现在,我们的 rootValue 对象包含我们的三个查询。我们还更改了 rollDice 函数,以接受 numDicenumSides 参数,并返回指定数量的投掷结果。

现在,使用以下命令重新启动应用程序:

现在您可以在浏览器中访问 http://localhost:3000/graphql,并测试我们的新查询。在查询编辑器中,输入以下查询:

然后按下“运行查询”按钮,您应该会在右侧面板中看到所有三个查询的结果。

结论

在本文中,我们探讨了如何使用 Express.js 和 GraphQL 创建 API。我们首先创建了一个简单的 Express.js 应用程序,然后添加了 GraphQL 支持,并定义了一些查询类型。最后,我们测试了我们的 API,并确保它可以正常工作。

这只是一个入门,您可以使用 GraphQL 构建更复杂的 API,并使用 Express.js 将其展现给用户。祝您好运!

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

纠错
反馈