Hapi 框架中集成 GraphQL 的方法

阅读时长 5 分钟读完

引言

GraphQL 是一种用于 API 的查询语言,它通过定义数据的形式和关系来描述 API 的能力。它可以被用于任何语言或平台,并且是一种强类型的查询语言。Hapi 是一个 Node.js 的 Web 应用程序框架,它提供了一个可扩展的插件体系结构,可以用于构建各种 Web 应用程序。

在本文中,我们将探讨如何在 Hapi 框架中集成 GraphQL,并使用它来构建一个基本的应用程序。我们将介绍如何安装和配置 GraphQL 插件,如何定义 GraphQL Schema,并使用它来查询和修改数据。

安装和配置插件

首先,我们需要安装 hapi-graphql 插件,它是一个用于在 Hapi 应用程序中使用 GraphQL 的插件。我们可以使用 npm 来安装它:

然后,我们需要在 Hapi 应用程序中注册插件。我们可以在应用程序的 server.js 文件中添加以下代码:

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

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

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

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

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

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

在这个代码中,我们首先导入了 graphqlHapimakeExecutableSchema 函数,它们分别用于创建 GraphQL 插件和定义 GraphQL Schema。然后,我们从 ./schema 文件中导入 typeDefsresolvers,它们用于定义 GraphQL Schema 中的类型和解析器。接下来,我们创建了一个 Hapi 服务器,并在其中注册了 graphqlHapi 插件。我们将 schema 作为 graphqlOptions 的值传递给插件,并启用了跨域资源共享(CORS)。

定义 GraphQL Schema

现在,我们需要定义 GraphQL Schema,它描述了我们的数据模型和 API 的能力。我们可以在 ./schema.js 文件中定义 Schema:

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

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

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

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

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

在这个代码中,我们首先导入了 gql 函数,它用于定义 GraphQL Schema 中的类型。我们定义了一个名为 Query 的类型,其中包含一个名为 hello 的字段。我们还定义了一个名为 Mutation 的类型,其中包含一个名为 setMessage 的字段,它接受一个名为 message 的参数,并返回一个字符串。接下来,我们定义了 resolvers 对象,它包含了 QueryMutation 类型中字段的解析器。

使用 GraphQL API

现在,我们可以使用 GraphQL API 来查询和修改数据了。我们可以打开浏览器,输入 http://localhost:4000/graphql,然后在 GraphQL Playground 中输入以下查询:

这将返回一个包含字符串 Hello World! 的 JSON 响应。我们也可以使用以下修改器:

这将返回一个包含字符串 Hello GraphQL! 的 JSON 响应。我们还可以在 setMessage 查询中传递其他参数,例如:

这将返回一个包含字符串 Hello GraphQL! (en) 的 JSON 响应。

结论

在本文中,我们介绍了如何在 Hapi 框架中集成 GraphQL,并使用它来构建一个基本的应用程序。我们讨论了如何安装和配置 hapi-graphql 插件,如何定义 GraphQL Schema,并使用它来查询和修改数据。我们希望这篇文章能够帮助您开始使用 GraphQL,并在您的项目中集成它。

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

纠错
反馈

纠错反馈