RESTful API 是一种基于 HTTP 协议的 API 设计风格,它具有简洁、灵活、易于扩展等优点,已经成为现代 Web 应用开发的标准。Deno 是一个新兴的 JavaScript 运行时环境,它提供了安全、稳定、高效的开发体验,也是构建基于 RESTful API 的 Web 应用的一个不错的选择。本文将介绍如何在 Deno 中构建基于 RESTful API 的 Web 应用,包括路由设计、数据存储、错误处理等方面的内容。
安装和使用 Deno
首先,我们需要安装 Deno。可以通过官网提供的一行命令来安装:
curl -fsSL https://deno.land/x/install/install.sh | sh
安装完成后,可以在命令行中输入 deno
来验证是否安装成功。
接下来,我们可以创建一个新的项目,例如:
mkdir deno-restful-api cd deno-restful-api touch app.ts
在 app.ts
中,我们可以编写第一个 Deno 程序:
console.log("Hello, Deno!");
然后,我们可以在命令行中执行 deno run app.ts
来运行程序,输出结果为 Hello, Deno!
。
设计 RESTful API
在构建基于 RESTful API 的 Web 应用时,我们需要先设计 API 的路由和数据模型。路由是指 API 的 URL 地址,数据模型是指 API 的输入和输出数据格式。
例如,我们要构建一个简单的 TODO 应用,它包含以下 API:
- GET /todos:获取所有 TODO
- GET /todos/:id:获取指定 ID 的 TODO
- POST /todos:创建新的 TODO
- PUT /todos/:id:更新指定 ID 的 TODO
- DELETE /todos/:id:删除指定 ID 的 TODO
对应的数据模型如下:
interface Todo { id: string; title: string; completed: boolean; }
使用 Oak 框架
Deno 并没有自带 Web 框架,但是社区已经有很多成熟的框架可供选择。这里我们选择 Oak 框架作为示例。
首先,我们需要安装 Oak 框架:
import { Application, Router } from "https://deno.land/x/oak/mod.ts";
然后,我们可以创建一个 router.ts
文件,定义 API 的路由和处理函数:
-- -------------------- ---- ------- ------ - ------ - ---- --------------------------------- ----- ------ - --- --------- -------------------- ----- -- - -- ----- ------ ---- --- --- ------------------------ ----- -- - -- ----- ------ -- - ---- --- --- --------------------- ----- ----- -- - -- ----- ------ ---- --- --- ------------------------ ----- ----- -- - -- ----- ------ -- - ---- --- --- --------------------------- ----- ----- -- - -- ----- ------ -- - ---- --- --- ------ ------- -------
然后,在 app.ts
中引入 router.ts
并启动应用:
-- -------------------- ---- ------- ------ - ----------- - ---- --------------------------------- ------ ------ ---- -------------- ----- --- - --- -------------- ------------------------- --------------------------------- ------------------- -- ------- -- ------------------------ ----- ------------ ----- ---- ---
现在,我们可以在命令行中执行 deno run --allow-net app.ts
来启动应用,访问 http://localhost:8000/todos 即可获取所有 TODO。
使用 MongoDB 存储数据
在实际开发中,我们需要将数据存储到数据库中。这里我们选择 MongoDB 作为示例。
首先,我们需要安装 MongoDB 驱动:
import { MongoClient } from "https://deno.land/x/mongo/mod.ts";
然后,我们可以在 router.ts
中使用 MongoDB 驱动来操作数据:
-- -------------------- ---- ------- ------ - ------ - ---- --------------------------------- ------ - ----------- - ---- ----------------------------------- ----- ------ - --- --------- ----- ------ - --- -------------- ----- -------------------------------------------- ----- -- - ---------------------------- ----- ----- - ----------------------------- -------------------- ----- ----- -- - ----- ------ - ----- ------------- ----------------- - ------- --- ------------------------ ----- ----- -- - ----- -- - --------------- ----- ------ - ----- --------------- ---- - ----- -- - --- ----------------- - ------- --- --------------------- ----- ----- -- - ----- - ----- - - ----- ------------------- ----- ---- - ----- ----------------------- ----------------- - ----- --- ------------------------ ----- ----- -- - ----- -- - --------------- ----- - ----- - - ----- ------------------- ----- ------ - ----- ----------------- ---- - ----- -- - -- - ----- ----- --- ----------------- - ------- --- --------------------------- ----- ----- -- - ----- -- - --------------- ----- ------ - ----- ----------------- ---- - ----- -- - --- ----------------- - ------- --- ------ ------- -------
现在,我们可以在命令行中执行 deno run --allow-net --allow-write --allow-read --allow-plugin --unstable app.ts
来启动应用,访问 http://localhost:8000/todos 即可获取所有 TODO,并将它们存储到 MongoDB 中。
错误处理
在实际开发中,我们需要对 API 的错误进行处理。这里我们可以使用 Oak 框架提供的中间件来处理错误。
首先,我们可以创建一个 error.ts
文件,定义错误处理中间件:
-- -------------------- ---- ------- ------ - ---------- - ---- --------------------------------- ----- ---------------- ---------- - ----- ----- ----- -- - --- - ----- ------- - ----- ----- - ------------------- ------------------- - ---- ----------------- - - ------ --------- ------ ------ -- - -- ------ ------- ----------------
然后,在 app.ts
中引入 error.ts
并使用错误处理中间件:
-- -------------------- ---- ------- ------ - ----------- - ---- --------------------------------- ------ ------ ---- -------------- ------ --------------- ---- ------------- ----- --- - --- -------------- ------------------------- ------------------------- --------------------------------- ------------------- -- ------- -- ------------------------ ----- ------------ ----- ---- ---
现在,我们可以在命令行中执行 deno run --allow-net --allow-write --allow-read --allow-plugin --unstable app.ts
来启动应用,访问不存在的 URL 地址即可触发错误处理中间件。
总结
本文介绍了如何在 Deno 中构建基于 RESTful API 的 Web 应用,包括路由设计、数据存储、错误处理等方面的内容。Deno 提供了安全、稳定、高效的开发体验,Oak 框架提供了方便、灵活、易于扩展的 Web 开发工具,MongoDB 驱动提供了数据存储和查询的功能,这些工具的组合可以帮助我们快速构建现代化的 Web 应用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/658ab182eb4cecbf2dff269f