Deno 中如何实现 GraphQL 的服务端和客户端?

GraphQL 是一种用于 API 的查询语言,它是由 Facebook 开发的一种数据查询和操作语言。GraphQL 可以让客户端精确地指定需要的数据,避免了 REST API 中的过度获取或者缺少数据的问题。在本文中,我们将介绍如何使用 Deno 实现 GraphQL 的服务端和客户端。

什么是 Deno?

Deno 是一个安全的 TypeScript 运行时,由 Node.js 的创始人 Ryan Dahl 开发。Deno 具有更好的安全性和可维护性,它可以直接运行 TypeScript 文件,而不需要任何编译过程。Deno 还内置了类似于 Node.js 的模块系统,可以轻松地导入和使用第三方模块。

如何实现 GraphQL 的服务端?

要在 Deno 中实现 GraphQL 的服务端,我们需要使用一个称为 oak 的框架来处理 HTTP 请求和响应。我们还需要使用 graphql 库来构建 GraphQL 服务器。

首先,我们需要安装 oakgraphql 库:

然后,我们可以编写一个简单的 GraphQL 服务器:

在上面的代码中,我们首先定义了一个 GraphQL 的 schema,它包含了一个 hello 查询,返回了一个字符串 "Hello, world!"。然后,我们使用 makeExecutableSchema 函数将 schema 和 resolver 组合成一个可执行的 GraphQL schema。

接下来,我们使用 oak 框架来创建一个 HTTP 服务器,并将路由设置为 /graphql。当客户端发送一个 POST 请求到 /graphql,我们将提取请求体中的查询语句,并使用 graphql 库来执行查询。最后,我们将查询结果作为响应体发送回客户端。

现在,我们可以运行这个 GraphQL 服务器:

然后,我们可以使用任何 GraphQL 客户端来测试这个服务器。例如,我们可以使用 curl 命令来发送一个 GraphQL 查询:

这将返回以下响应:

如何实现 GraphQL 的客户端?

要在 Deno 中实现 GraphQL 的客户端,我们需要使用一个称为 graphql-request 的库来发送 GraphQL 查询。该库可以将查询字符串发送到 GraphQL 服务器,并返回执行结果。

首先,我们需要安装 graphql-request 库:

然后,我们可以编写一个简单的 GraphQL 客户端:

在上面的代码中,我们首先定义了一个 GraphQL 查询字符串,它将查询服务器上的 hello 字段。然后,我们使用 graphql-request 库的 request 函数将查询字符串发送到服务器,并返回执行结果。最后,我们将结果打印到控制台。

现在,我们可以运行这个 GraphQL 客户端:

这将返回以下响应:

总结

在本文中,我们介绍了如何使用 Deno 实现 GraphQL 的服务端和客户端。我们使用了 oak 框架来处理 HTTP 请求和响应,并使用 graphql 库来构建 GraphQL 服务器。我们还使用了 graphql-request 库来发送 GraphQL 查询。这些技术可以帮助我们构建更加强大和灵活的 Web 应用程序,提高开发效率和用户体验。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/657aa3fdd2f5e1655d50ea16


纠错
反馈