在 Deno 中构建 REST API 和 GraphQL API

阅读时长 8 分钟读完

介绍

Deno 是一个由 Node.js 的创造者 Ryan Dahl 所开发的运行时环境,与 Node.js 不同的是,它内置了 TypeScript,并且使用更为安全的 V8 引擎,同时也不依赖 npm 包管理器,而是采用官方提供的特有的模块系统和包管理方式。

本篇文章将介绍如何在 Deno 环境中构建 REST API 和 GraphQL API。

REST API

安装

首先我们需要安装 Deno,可以使用以下代码:

或者在 官网 下载安装包进行安装。

安装成功后,我们可以在终端中输入 deno 命令,如果能够正常输出版本号说明安装成功。

创建应用

创建一个新的文件夹(比方说叫做 deno-rest-api),在其中创建一个新的文件 app.ts,该文件将作为我们的入口文件。

实现应用

app.ts 中,我们可以先引入需要的模块。

我们将使用 oak 模块来实现我们的 REST API。oak 是一个基于中间件的 web 框架,类似于 Koa。

接着我们可以创建一个路由。

这里我们创建了一个 GET 请求的路由,返回了一个 JSON 格式的数据。

最后,我们可以将路由添加到应用中,并且启动服务器。

这里我们使用了 await 关键字来等待服务器启动完成,绑定 8000 端口。

运行应用

我们可以在终端中进入刚刚创建的 deno-rest-api 文件夹,运行 deno run --allow-net app.ts 命令,此时终端将输出如下信息:

我们可以在浏览器中打开 http://localhost:8000,可以看到返回的 JSON 数据。

示例代码

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

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

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

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

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

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

GraphQL API

安装

同样的,我们需要先安装 Deno。

另外,我们需要安装 dgraphql 以及 dgraphql-opine 模块。

创建应用

创建一个新的文件夹(比方说叫做 deno-graphql-api),在其中创建一个新的文件 app.ts,该文件将作为我们的入口文件。

实现应用

app.ts 中,我们可以先引入需要的模块。

我们将使用 graphql_tools 模块来构建我们的 GraphQL 解析器,dgraphql_opine 模块用于处理 GraphQL 请求,opine 模块用于提供 web 服务。

接着我们可以定义一个 schema,该 schema 定义了我们的数据结构以及操作方法。

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

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

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

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

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

接着我们可以构建一个 GraphQL 中间件。

这里我们使用了 graphiql 参数开启了 GraphiQL 的 web 界面。GraphiQL 是 GraphQL 的一个交互式 IDE,可以帮助我们测试和调试 GraphQL 请求。

最后,我们可以启动服务器。

运行应用

同样的,我们可以在终端中进入刚刚创建的 deno-graphql-api 文件夹,运行 deno run --allow-net app.ts 命令,此时终端将输出如下信息:

我们可以在浏览器中打开 http://localhost:8000/graphql,可以看到 GraphiQL 的 web 界面。

接着,我们可以在左侧的查询栏中输入如下查询语句:

点击 "Run" 按钮,可以看到返回的 JSON 数据。

示例代码

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

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

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

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

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

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

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

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

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

总结

本篇文章介绍了如何在 Deno 环境中构建 REST API 和 GraphQL API。Deno 提供了一种新的写法和方式,使用 TypeScript 进行开发能够更好地保证代码的可读性、可维护性和可扩展性。Deno 的安全性能更好,对于一些对安全性有要求的场景,Deno 是一个很好的选择。

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

纠错
反馈