GraphQL 是一种用于 API 的查询语言,由 Facebook 在 2012 年开发,旨在提高 API 性能和灵活性。Hapi 是一个 Node.js Web 框架,它提供了强大的工具和插件来构建 Web 应用程序。在本文中,我们将介绍如何使用 Hapi 框架来实现 GraphQL API。
准备工作
在开始之前,我们需要确保已经安装了 Node.js 和 npm。我们将使用 npm 来安装 Hapi 和其他必要的依赖项。你可以通过以下命令来检查是否已经安装了它们:
node -v npm -v
如果这两个命令都能成功运行并显示版本号,则说明已经安装了 Node.js 和 npm。
接下来,我们需要创建一个新的 Node.js 项目并初始化它。在命令行中执行以下命令:
mkdir hapi-graphql-api cd hapi-graphql-api npm init -y
这将创建一个名为 hapi-graphql-api
的新文件夹,并在其中创建一个新的 package.json
文件。
安装依赖项
在开始编写代码之前,我们需要安装一些必要的依赖项。我们将使用以下命令来安装它们:
npm install hapi graphql apollo-server-hapi --save
这将安装 Hapi、GraphQL 和 Apollo Server Hapi 插件,这些插件将帮助我们构建我们的 GraphQL API。
编写代码
现在我们已经安装了必要的依赖项,我们可以开始编写代码了。首先,我们需要创建一个新的 Hapi 服务器实例,并注册 Apollo Server 插件。我们将创建一个名为 server.js
的新文件,并在其中编写以下代码:
-- -------------------- ---- ------- ----- ---- - ---------------- ----- - ------------- --- - - ------------------------------ ----- ------ - --- ------------- ----- ----- ----- ----------- --- ----- -------- - ---- ---- ----- - ------ ------ - -- ----- --------- - - ------ - ------ -- -- ------- ------- - -- ----- ------------- - - ----- ----------- --------------- - ------- ---------------------- --------- --------- -- - -- ----- ----- - ----- -- -- - ----- ----------------- ------- ------------- -------- ------------- --- ----- --------------- ------------------- ------- --- --------------------- -- --------
在这个示例代码中,我们定义了一个名为 typeDefs
的 GraphQL 类型定义和一个名为 resolvers
的解析器对象。我们还定义了一个名为 serverOptions
的 Apollo Server Hapi 选项对象,该对象包括了我们的 GraphQL schema。最后,我们创建一个名为 start
的异步函数,该函数注册 Apollo Server 插件并启动 Hapi 服务器。
测试 API
现在我们已经编写了我们的 GraphQL API,我们可以使用 GraphiQL 工具测试它。GraphiQL 是一个用于测试 GraphQL API 的交互式 IDE。我们可以通过访问 http://localhost:4000/graphql
来打开 GraphiQL。
在 GraphiQL 中,我们可以输入以下查询:
query { hello }
这将返回以下响应:
{ "data": { "hello": "Hello, world!" } }
结论
在本文中,我们介绍了如何使用 Hapi 框架和 Apollo Server Hapi 插件来实现 GraphQL API。我们还介绍了如何使用 GraphiQL 工具测试我们的 API。通过使用这些工具和技术,我们可以轻松地构建高性能和灵活的 GraphQL API。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/675fdcd803c3aa6a56f9de34