使用 Koa 和 GraphQL 构建 API 的教程

阅读时长 6 分钟读完

前言

在现代 Web 应用程序开发中,API 是一个至关重要的组成部分。API 可以让客户端和服务器之间进行通信,从而实现数据交互和应用程序的功能。在构建 API 时,很多开发者都会选择使用 Koa 和 GraphQL 这两个工具来实现。Koa 是一个基于 Node.js 的 Web 框架,而 GraphQL 是一种用于 API 的查询语言和运行时环境。本文将介绍如何使用 Koa 和 GraphQL 来构建 API。

安装 Koa 和 GraphQL

在开始之前,我们需要确保已经安装了 Node.js 和 npm。在命令行中输入以下命令来安装 Koa 和 GraphQL:

创建 Koa 应用程序

我们将从创建一个简单的 Koa 应用程序开始。在项目的根目录下创建一个名为 app.js 的文件,输入以下代码:

这段代码创建了一个 Koa 应用程序,并监听端口 3000。当访问 http://localhost:3000 时,服务器将返回 "Hello World"。

使用 GraphQL

现在我们将添加 GraphQL 到我们的应用程序中。首先,我们需要在 app.js 文件中引入 koa-graphql 模块:

接下来,我们需要定义一个 GraphQL schema。在项目的根目录下创建一个名为 schema.js 的文件,输入以下代码:

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

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

-------------- - -------
展开代码

这段代码定义了一个简单的 GraphQL schema,其中包含一个查询类型,该类型具有一个名为 hello 的字段,该字段返回一个字符串。

现在我们需要将 GraphQL middleware 添加到我们的应用程序中。在 app.js 文件中添加以下代码:

这段代码将 graphqlHTTP middleware 添加到我们的应用程序中,并将 schema 作为参数传递给它。graphiql 选项设置为 true,这将启用 GraphiQL,一个用于测试和调试 GraphQL API 的 Web 界面。

现在我们可以重新启动应用程序,并尝试访问 http://localhost:3000/graphql。这将打开 GraphiQL 界面。在左侧的查询窗口中输入以下查询:

然后单击运行按钮。您应该会在右侧的结果窗口中看到以下结果:

添加更多的查询和变异

现在我们已经成功地添加了 GraphQL 到我们的应用程序中,并创建了一个简单的查询。接下来,让我们添加更多的查询和变异。

schema.js 文件中添加以下代码:

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

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

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

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

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

-------------- - - ------- ---- --
展开代码

这段代码定义了一个包含更多查询和变异的 GraphQL schema。我们添加了一个返回随机字符串的 quoteOfTheDay 查询,一个返回随机浮点数的 random 查询,一个返回三个骰子点数的数组的 rollThreeDice 查询,以及一个设置消息变量的 setMessage 变异。

现在我们需要更新 app.js 文件,以便使用新的 schema 和 root 对象:

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

--------
  -------------
    ------- -------
    ---------- -----
    --------- -----
  ---
--
展开代码

现在我们可以重新启动应用程序,并尝试在 GraphiQL 中运行以下查询和变异:

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

-------- -
  ------------------- ------ ----------
-
展开代码

您应该会在右侧的结果窗口中看到以下结果:

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

-
  ------- -
    ------------- ------ ---------
  -
-
展开代码

结论

在本文中,我们介绍了如何使用 Koa 和 GraphQL 来构建 API。我们从创建一个简单的 Koa 应用程序开始,然后添加了 GraphQL middleware 和一个简单的 GraphQL schema。接着我们添加了更多的查询和变异,以便更好地演示 GraphQL 的功能。我们希望本文能够帮助您更好地理解如何使用 Koa 和 GraphQL 构建 API。

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

纠错
反馈

纠错反馈