如何在 Deno 中实现 Restful API?

阅读时长 7 分钟读完

Restful API 是现代 web 应用程序中广泛使用的一种 API 设计风格。Deno 作为一种现代 JavaScript 运行环境,提供了一种更加安全且可靠的方式来编写 Restful API。本文将关注如何使用 Deno 来实现 Restful API,并为你提供一些深度和指导意义。

什么是 Restful API?

Restful API 是一种基于 HTTP 协议设计的 Web API。它使用一组规范的 HTTP 动词(GET、POST、PUT、DELETE)来执行 CRUD(创建、读取、更新、删除)操作,以及使用统一资源标识符(URI)来标记资源。当访问 API 的 URI 时,服务器将根据所请求的资源类型以及传递的参数来执行相应的操作,并返回 HTTP 状态码和响应数据。

Deno 是什么?为什么要使用 Deno?

Deno 是由 Ryan Dahl(也是 Node.js 的创始人)开发的一种现代 JavaScript 运行环境。相比于 Node.js,Deno 提供了更高级别的安全保障。Deno 不允许应用程序访问任意文件系统或网络资源,除非应用程序显式地请求访问它们,并且用户在执行 Deno 脚本时需要提供权限。这样做有助于防止恶意代码从应用程序中窃取敏感信息。

此外,Deno 还提供了更好的模块化支持、ES 模块的原生支持、更快的模块加载速度,以及内置的 TypeScript 支持,并且 Dno 的标准库中包含了许多常见的功能模块。

如何使用 Deno 来实现 Restful API

在 Deno 中使用 Oak 这个轻量级的中间件框架来实现 Restful API 的方法非常简单。请按照以下步骤来实现。

步骤 1:安装 Deno

Deno 目前可以使用 curl 或者 shell 脚本来安装。为了确保安全,请在终端中运行以下命令:

这将下载并安装 Deno,您可以使用 deno --version 命令来确认安装是否成功。

步骤 2:创建 Restful API

在此示例中,我们将创建一个简单的 TodoList 应用程序。它将具有以下功能:

  • 获取所有 Todo 列表项
  • 获取单个 Todo 列表项
  • 创建新的 Todo 列表项
  • 更新现有的 Todo 列表项
  • 删除现有的 Todo 列表项

我们将使用 Oak 来实现我们的 Restful API。因此,首先您需要在终端中运行以下命令来安装 Oak:

在此示例中,我们将使用 yaml 模块来加载实例数据。为了使用它,请在终端中运行以下命令:

此外,我们还需要一个数据文件来存储我们的 Todo 列表项。请在根文件夹下创建一个名为 todos.yml 的文件,其内容如下:

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

接下来,我们需要创建一个 server.ts 文件,并添加以下代码:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

该代码创建一个 Web 应用程序,监听本地端口 8000,并在 /todos 路由上提供以下 API:

  • GET /todos - 获取所有 Todo 列表项
  • GET /todos/:id - 获取单个 Todo 列表项
  • POST /todos - 创建新的 Todo 列表项
  • PUT /todos/:id - 更新现有的 Todo 列表项
  • DELETE /todos/:id - 删除现有的 Todo 列表项

步骤 3:运行 Deno 应用程序

现在,您可以在终端中运行以下命令来启动应用程序:

这将运行我们的 Deno 应用程序,并在本地端口 8000 上监听 API 请求。

总结

这篇文章讲解了如何使用 Deno 和 Oak 来实现 Restful API。我们介绍了什么是 Restful API,并讨论了为什么使用 Deno。然后,我们详细讲解了如何使用 Deno 和 Oak 来创建一个简单的 TodoList 应用程序,并向你展示了如何实现基本的 CRUD 操作。

Deno 开启了一种更高级别的安全和更可靠的方式来编写 Restful API,您也可以通过参考上述示例来构建自己的应用程序。

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

纠错
反馈