Hapi.js 实现 GraphQL 的指南

· 约 4 分钟读完

GraphQL 是一种新兴的 API 查询语言,它能够将客户端的查询需求映射到服务端的具体数据源上,从而大大提高了 API 查询的效率和灵活性。在前端领域中,Hapi.js 是一款非常流行的 Web 应用框架,它提供了一系列的插件和工具,可以让我们快速地实现 GraphQL 服务。本文将介绍如何在 Hapi.js 中实现 GraphQL,帮助读者快速掌握 GraphQL 的使用。

Hapi.js 的安装与配置

在开始之前,我们需要先安装好 Hapi.js 和相关的工具。使用 npm 可以轻松地安装 Hapi.js:

接着,我们需要安装其他一些必须的插件,包括 graphql、graphql-tools、hapi-graphql:

安装完成后,我们需要配置好 Hapi.js 的启动文件。在我们的案例中,我们将使用 index.js 作为启动文件。在此文件中,我们需要引入 Hapi.js 和相关的插件以及数据源,配置好 GraphQL 的路由和处理函数。具体的代码如下:

在这份代码中,我们首先定义了 GraphQL schema,并根据 schema 和 resolvers 创建了可执行的 schema。接着,创建了 Hapi 服务,并添加了两个路由,分别是 GraphQL API 和 GraphiQL。其中,GraphQL API 的 path 是 /graphql,通过 graphqlOptions 配置 GraphQL schema,同时开启了跨域请求 cors。而 GraphiQL 的 path 是 /graphiql, endpointURL 则指向了 GraphQL API 的地址。最后,通过调用 server.start() 启动 Hapi 服务。

编写 GraphQL 查询

有了上面的配置,我们可以通过访问 http://localhost:4000/graphiql 来测试 GraphQL 查询了。在 GraphiQL 的交互式界面中,我们可以输入以下查询语句:

这个查询语句就是调用了刚刚我们在 schema 中定义的 hello 查询操作,它会返回一个字符串 "Hello from GraphQL!"。图中是返回的结果:

结语

经过本文的介绍,相信读者已经了解了如何在 Hapi.js 中实现 GraphQL,以及如何编写和调试 GraphQL 查询操作。当然,GraphQL 还有很多更加高级和复杂的操作,我们只是简单地介绍了它的基本用法。更多有关 GraphQL 的学习资料,可以参见官方文档:https://graphql.org/。

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