从头开始学习 Deno 如何开发 REST API

阅读时长 9 分钟读完

介绍

Deno 是一个新的 JavaScript/TypeScript 运行时,由 Node.js 的创始人 Ryan Dahl 开发。Deno 采用了 V8 引擎和 Rust 编写的底层模块,可以在浏览器之外运行 JavaScript/TypeScript 代码。Deno 支持模块化开发、异步 I/O、ES6+ 特性和 TypeScript 等功能,且在安全性、可维护性和性能方面有很多优势。

REST API 是一种基于 HTTP 协议的应用程序接口,可以实现客户端和服务器之间的数据交互。REST API 通常使用 JSON 或 XML 格式传输数据,并使用 HTTP 方法(如 GET、POST、PUT、DELETE)来操作资源。在 Deno 中,我们可以使用标准库中的 http 模块来开发 REST API。

本文将介绍如何从头开始学习 Deno 如何开发 REST API,包括搭建开发环境、创建 API 路由、处理请求和响应、使用中间件等内容。

搭建开发环境

首先,我们需要安装 Deno 运行时。可以通过以下命令在命令行中安装 Deno:

安装完成后,我们可以通过以下命令验证 Deno 是否安装成功:

接下来,我们需要安装一个文本编辑器,以便编写代码。推荐使用 Visual Studio Code(VS Code)编辑器,并安装 Deno 扩展,以便在编辑器中使用 Deno。可以通过以下命令安装 Deno 扩展:

现在,我们已经搭建好了 Deno 开发环境。

创建 API 路由

在 Deno 中,我们可以使用标准库中的 http 模块来创建 HTTP 服务器。首先,我们需要创建一个 server.ts 文件,并引入 http 模块:

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

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

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

--- ----- ------ --- -- ------- -
  -------------------------- -------------
-
展开代码

以上代码中,我们使用 serve 函数创建了一个监听 8000 端口的 HTTP 服务器,并在控制台输出了服务器运行的地址。然后,我们使用 for await 循环来监听客户端的请求,并输出请求的方法和路径。

现在,我们已经创建了一个简单的 HTTP 服务器。接下来,我们需要创建 API 路由,以便客户端可以通过不同的路径访问不同的资源。

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

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

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

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

  -- -------- --- ------------- -
    -- ----------- --- ------ -
      -- -- --- --
    - ---- -- ----------- --- ------- -
      -- -- ---- --
    - ---- -- ----------- --- ------ -
      -- -- --- --
    - ---- -- ----------- --- --------- -
      -- -- ------ --
    -
  - ---- -- -------- --- ---------------- -
    -- ----------- --- ------ -
      -- -- --- --
    - ---- -- ----------- --- ------- -
      -- -- ---- --
    - ---- -- ----------- --- ------ -
      -- -- --- --
    - ---- -- ----------- --- --------- -
      -- -- ------ --
    -
  - ---- -
    ------------- ------- ---- ----- ---- ------ ---
  -
-
展开代码

以上代码中,我们在 for await 循环中使用了 if 语句来判断客户端请求的路径和方法,并分别处理不同的请求。如果客户端请求的路径不存在,则返回 404 状态码和错误信息。

处理请求和响应

在 REST API 中,客户端向服务器发送请求时,通常需要携带一些数据,例如查询参数、请求体和请求头等。服务器需要解析这些数据,并根据请求的路径和方法执行相应的操作,然后将结果返回给客户端。

在 Deno 中,我们可以使用标准库中的 RequestResponse 类来处理请求和响应。以下是一个简单的示例:

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

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

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

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

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

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

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

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

      ------------- ----- ------- ---- ---- -- ------ ---
    -
  - ---- -- -------- --- ---------------- -
    -- ---------
  - ---- -
    ------------- ------- ---- ----- ---- ------ ---
  -
-
展开代码

以上代码中,我们在 GET 请求中解析了查询参数,并根据参数的值返回不同的结果;在 POST 请求中解析了请求体,并根据请求体的内容创建新的资源;在 PUT 请求中同时解析了查询参数和请求体,并根据参数和请求体的内容更新指定的资源;在 DELETE 请求中解析了查询参数,并根据参数的值删除指定的资源。

使用中间件

在 REST API 中,中间件是一种常用的技术,可以在请求和响应之间执行各种操作。例如,我们可以使用中间件来验证请求的身份、记录请求日志、处理错误等。

在 Deno 中,我们可以使用标准库中的 Middleware 类来实现中间件。以下是一个简单的示例:

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

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

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

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

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

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

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

  -- -------- --- ------------- -
    -- ---------
  - ---- -- -------- --- ---------------- -
    -- ---------
  - ---- -
    ------------- ------- ---- ----- ---- ------ ---
  -
-
展开代码

以上代码中,我们使用了 Middleware 类来定义了一个名为 authMiddleware 的中间件,用于验证请求的身份。在每个请求到达时,我们可以通过 await next() 来调用下一个中间件或路由处理程序。

总结

本文介绍了如何从头开始学习 Deno 如何开发 REST API,包括搭建开发环境、创建 API 路由、处理请求和响应、使用中间件等内容。Deno 具有很多优势,例如安全性、可维护性和性能等,可以为开发者提供更好的开发体验和更高效的开发方式。希望本文对您有所帮助,欢迎提出宝贵的意见和建议。

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

纠错
反馈

纠错反馈