使用 Deno 构建 GraphQL 服务端

阅读时长 4 分钟读完

GraphQL 是一种用于 API 的查询语言,它允许客户端定义自己需要的数据,从而解决了 REST API 中出现的问题。Deno 是一个新兴的运行时环境,它支持 TypeScript,并且具有安全性、简单性和快速启动的特点。在本文中,我们将学习如何使用 Deno 构建 GraphQL 服务端,并创建一个示例应用程序。

什么是 GraphQL?

GraphQL 由 Facebook 开发,它是一种查询语言和运行时环境,用于构建 Web 应用程序中的 API。GraphQL 的一个关键特点是客户端可以完全控制所请求的数据,而不是使用 RESTful API 中的固定集合。它还支持更快的开发周期和更容易的版本控制。GraphQL API 可以用多种语言构建,包括 JavaScript、Java、Python、Ruby 等。

Deno 是什么?

Deno 是一个新兴的 JavaScript 和 TypeScript 运行时环境,它已经在开发人员中变得越来越流行。它由 Node.js 的原始作者 Ryan Dahl 开发,并融合了 TypeScript 和 Rust 等新技术。与 Node.js 不同,Deno 提供了安全性、自包含性和依赖项管理的优势。

在 Deno 中构建 GraphQL 服务端非常简单。我们需要安装一个名为 dalgard/graphql 的第三方模块,并编写一些代码。

步骤 1:安装依赖项

我们首先需要安装 dalgard/graphql 模块,它是一个完全用 TypeScript 写成的 GraphQL 服务器。在命令行中运行以下命令:

这将创建 main.ts 文件并安装所需的依赖项。

步骤 2:创建 GraphQL 服务器

我们现在需要创建一个 GraphQL 服务器。在 main.ts 文件中,我们添加以下代码:

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

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

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

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

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

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

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

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

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

在这个代码块中,我们使用 Deno 的 Oak 框架创建了一个 HTTP 服务器,然后定义了 GraphQL 的 schema。这个 schema 定义了我们的 server 将拥有哪些 Query 和 Mutation。然后,我们编写了两个 resolvers 函数,一个用于获取用户,另一个用于添加新用户。最后,我们使用 applyGraphQL 函数来启动 GraphQL 服务器。

步骤 3:运行服务器

我们现在可以使用命令来启动服务器:

现在我们可以使用浏览器来访问 http://localhost:8000/graphql 并测试我们的服务器。

总结

本文中,我们学习了如何使用 Deno 构建 GraphQL 服务器,并创建了一个简单的示例应用程序。使用 Deno 构建 GraphQL 服务器需要编写比传统的 REST API 更少的代码,且更方便于开发和维护。我们希望本文能够帮助您快速了解 Deno 和 GraphQL,以便在项目中使用它们。

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

纠错
反馈