前言
Deno 是一个基于 V8 引擎的 JavaScript/TypeScript 运行时,由 Node.js 的创始人 Ryan Dahl 开发。相比于 Node.js,Deno 更加安全、更加简洁,而且自带 TypeScript 支持。
本文将介绍如何在 Deno 中实现一个简单的 CRUD RESTful API,希望能为初学者提供一些指导。
环境搭建
首先,需要安装 Deno 运行时。可以到官网(https://deno.land/)下载安装包,也可以使用包管理器(如 Homebrew)安装。
安装完成后,可以使用以下命令检查是否安装成功:
deno --version
接着,需要安装一个简单的 HTTP 服务器,这里我们使用 Oak。Oak 是一个基于中间件的 Web 框架,类似于 Node.js 中的 Express。
可以使用以下命令安装 Oak:
deno install --allow-net --allow-read https://deno.land/x/oak/mod.ts
实现 CRUD RESTful API
接下来,我们将通过实现一个简单的 Todo 应用程序来学习如何在 Deno 中实现 CRUD RESTful API。
创建数据模型
首先,我们需要创建一个数据模型来存储 Todo 数据。在本例中,我们只需要存储 Todo 的标题和完成状态。
interface Todo {
id: string;
title: string;
completed: boolean;
}创建路由
接下来,我们需要创建路由来处理 HTTP 请求。在 Oak 中,路由是由中间件组成的。
-- -------------------- ---- ------- ------ - ------ - ---- --------------------------------- ----- ------ - --- --------- -------------------- ------------- ------------------------ ------------- --------------------- ------------ ------------------------ ------------ --------------------------- ------------ ------ ------- -------
我们定义了 5 个路由:
- GET /todos:获取所有 Todo
- GET /todos/:id:根据 ID 获取 Todo
- POST /todos:创建新的 Todo
- PUT /todos/:id:更新指定的 Todo
- DELETE /todos/:id:删除指定的 Todo
实现路由处理函数
接下来,我们需要实现路由处理函数来处理 HTTP 请求。在本例中,我们将数据存储在内存中,而不是使用数据库。
-- -------------------- ---- -------
--- ------ ------ - ---
-------- ---------------- ---- -
----------------- - ------
-
-------- ---------------- ---- -
----- -- - --------------
----- ---- - ----------------- -- ------- --- ----
-- ------- -
------------------- - ----
----------------- - - -------- ----- --- ------ --
- ---- -
----------------- - -----
-
-
----- -------- --------------- ---- -
----- ---- - ----- -------------------
----- - ----- - - -----------
----- ----- ---- - -
--- ------------------------------------ ---
------
---------- ------
--
-----------------
----------------- - -----
------------------- - ----
-
----- -------- --------------- ---- -
----- -- - --------------
----- ---- - ----------------- -- ------- --- ----
-- ------- -
------------------- - ----
----------------- - - -------- ----- --- ------ --
- ---- -
----- ---- - ----- -------------------
----- - ------ --------- - - -----------
---------- - ----- -- -----------
-------------- - --------- -- ---------------
----------------- - -----
-
-
-------- --------------- ---- -
----- -- - --------------
----- ----- - ---------------------- -- ------- --- ----
-- ------ --- --- -
------------------- - ----
----------------- - - -------- ----- --- ------ --
- ---- -
------------------- ---
------------------- - ----
-
-在 getAllTodos 函数中,我们将所有的 Todo 返回给客户端。
在 getTodoById 函数中,我们根据 ID 查找指定的 Todo。如果找到了,我们将 Todo 返回给客户端;否则,返回 404 错误。
在 createTodo 函数中,我们从 HTTP 请求中获取 Todo 的标题,并为其生成一个随机的 ID。然后,我们将 Todo 存储在内存中,并将其返回给客户端。
在 updateTodo 函数中,我们根据 ID 查找指定的 Todo。如果找到了,我们从 HTTP 请求中获取 Todo 的标题和完成状态,并更新 Todo。然后,我们将更新后的 Todo 返回给客户端;否则,返回 404 错误。
在 deleteTodo 函数中,我们根据 ID 查找指定的 Todo。如果找到了,我们从内存中删除 Todo;否则,返回 404 错误。注意,我们在删除 Todo 后返回 204 状态码,表示请求成功但没有响应内容。
运行应用程序
最后,我们需要运行应用程序。可以使用以下命令:
deno run --allow-net app.ts
在浏览器中访问 http://localhost:8000/todos 即可查看所有 Todo。可以使用 Postman 或类似工具来测试其他路由。
总结
本文介绍了如何在 Deno 中实现一个简单的 CRUD RESTful API。通过本例,我们学习了如何使用 Oak 创建路由、如何实现路由处理函数以及如何存储数据。希望本文能对初学者提供一些指导。
Source: FunTeaLearn,Please indicate the source for reprints https://funteas.com/post/65fb9866d10417a22272c8bb