使用 Hapi 框架构建 GraphQL API 的实践

阅读时长 6 分钟读完

GraphQL 是一种查询语言,它可以帮助前端开发者快速地从后端获取数据。Hapi 是一个 Node.js 后端框架,它可以帮助开发者构建可扩展和易于测试的服务器应用程序。本文将介绍如何使用 Hapi 框架构建 GraphQL API。

安装 Hapi 和其他依赖项

首先,你需要安装一些必要的依赖项,包括 Hapi、GraphQL、Apollo Server 和 Joi(用于验证数据)。你可以使用 npm 通过以下命令来安装它们:

定义 GraphQL 模型

在使用 Hapi 框架构建 GraphQL API 时,你需要定义一个 GraphQL 模型。这个模型描述了你希望从后端获取的数据的类型和结构。下面是一个示例 GraphQL 模型:

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

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

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

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

这个模型定义了两个对象类型:AuthorTweet,以及两个根操作类型:QueryMutation。每个对象类型都有一些属性。Author 对象类型包括 idnametweets 属性,而 Tweet 对象类型包括 idtextauthor 属性。Query 根操作类型包含获取作者和推文的一些查询,而 Mutation 根操作类型允许你创建新的作者和推文。

实现 GraphQL API

一旦你已经定义了 GraphQL 模型,现在可以使用 Hapi 框架实现 GraphQL API 了。下面是一个示例:

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

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

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

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

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

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

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

-------

这段代码通过 ApolloServertypeDefsresolvers 以及 context 参数创建了一个 GraphQL API 服务器。typeDefsresolvers 定义了 GraphQL 模型和查询。context 参数用于将数据库对象提供给解析器函数。

测试 GraphQL API

现在,你已经构建了一个 GraphQL API 服务器,可以进行测试了。你可以使用 GraphQL Playground(通常在 localhost:4000/graphql 中找到)或其他 GraphQL 客户端工具测试它。

下面是一些查询和突变的例子:

查询作者和推文:

创建新的推文:

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

查询所有作者:

总结

使用 Hapi 框架构建 GraphQL API 是一种快速、安全且易于维护的方法。本文介绍了如何在 Hapi 框架中定义 GraphQL 模型,并实现 GraphQL API。通过这些步骤,开发人员可以利用 GraphQL 接口快速从后端获取数据。

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

纠错
反馈