使用 Hapi 框架搭建 GraphQL API

· 约 4 分钟读完

GraphQL 是一种用于 API 的查询语言,它提供了一种更高效、更强大、更灵活的方式来获取和修改数据。Hapi 是一个基于 Node.js 的 Web 框架,它提供了一些强大的工具和插件来帮助开发者快速构建 Web 应用程序。在本文中,我们将介绍如何使用 Hapi 框架搭建 GraphQL API。

安装 Hapi 和相关插件

首先,我们需要安装 Hapi 和相关插件。可以使用 npm 或者 yarn 来进行安装,具体命令如下:

这里我们安装了 Hapi 框架本身以及一些常用的插件,包括 @hapi/boom、@hapi/joi 和 @hapi/graphql。@hapi/boom 是用于处理错误的插件,@hapi/joi 是用于数据验证的插件,@hapi/graphql 是用于构建 GraphQL API 的插件。

配置 Hapi 服务器

接下来,我们需要配置 Hapi 服务器。在 server.js 文件中,添加以下代码:

上面的代码定义了一个简单的 GraphQL API,它只有一个查询字段 hello,返回字符串 Hello, world!。我们使用 makeExecutableSchema 函数将类型定义和解析器合并为一个 GraphQL schema。

使用 Hapi.server 函数创建了一个名为 server 的 Hapi 服务器,将其监听在本地的 3000 端口。我们注册了 graphqlHapi 插件,并将其配置在 /graphql 路径上。graphqlOptions 选项指定了我们定义的 GraphQL schema。route 选项启用了跨域资源共享(CORS)。

我们还定义了一个简单的路由,用于测试 Hapi 服务器是否正常运行。

测试 GraphQL API

现在,我们可以启动 Hapi 服务器,并测试 GraphQL API 是否正常工作。在终端中运行以下命令:

如果一切正常,你应该能够看到类似如下的输出:

现在,我们可以使用 GraphiQL 工具来测试 GraphQL API。在浏览器中打开 http://localhost:3000/graphql,你应该能够看到 GraphiQL 的界面。在左侧的查询编辑器中输入以下查询:

点击运行按钮,你应该能够看到类似如下的响应:

至此,我们已经成功地使用 Hapi 框架搭建了一个简单的 GraphQL API。你可以根据自己的需求,添加更多的类型定义和解析器,构建更加复杂的 API。

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