RESTful API 是现代 Web 应用程序的基础部分,它是一种使用 REST (Representational State Transfer) 架构风格来设计 Web 服务的 API。RESTful API 是一种高可扩展性、高灵活性、简单易用和跨平台的 API 设计方案。在本文中,我们将使用 Express.js 来构建一个简单的 RESTful API,以便您可以学习如何设计和实现 RESTful API。
1. 简介
Express.js 是一个基于 Node.js 平台的 Web 应用程序框架,它提供了一组强大的基于中间件的工具,可以帮助您创建可重用的 Web 应用程序组件。Express.js 提供了一个优雅的 API 用于构建 Web 应用程序和 RESTful API,它非常灵活、易于使用,同时性能也非常出色,是一个非常流行的 Web 框架。
2. 安装与配置
在开始使用 Express.js 建立 RESTful API 之前,我们需要先安装和配置 Express.js。
首先,在命令行中创建一个新的项目目录,然后使用 npm 进行初始化:
mkdir myapp && cd myapp npm init -y
然后,安装 Express.js:
npm install express --save
接下来,我们需要创建一个简单的 Express.js 应用程序。创建一个新的 js 文件——app.js:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- ------------ ----- ---- -- - --------------- --------- --- ---------------- -- -- - -------------------- --- --------- -- ---- -------- ---
这个应用程序只有一个路由,即 "/". 当用户访问 "/" 路径时,应用程序将返回 "Hello World!"。启动这个应用程序:
node app.js
现在,访问本地的 localhost:3000,就可以看到 "Hello World!" 了。
3. 创建 RESTful API
现在我们开始构建我们的 RESTful API。
3.1 创建路由
在 Express.js 中,路由是用于处理请求和返回响应的模块。我们需要创建一组路由来实现 RESTful API 的基础架构。
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- -- --- --- ----- ----------------- ----- ---- -- - -- ------ --- ----- --- -- --- - ------ ---- -- -- --------------------- ----- ---- -- - ----- -- - -------------- -- ------ --- ---- ---- --- ----- -- --- -- ---- - --- ---- ------------------ ----- ---- -- - ----- - ----- ----- - - --------- -- ------ - --- ---- ---- --- ----- ---- --- ----- --- -- --- -- -------- ---- -- -- --------------------- ----- ---- -- - ----- -- - -------------- ----- - ----- ----- - - --------- -- ------ --- ---- ---- --- ----- -- ---- --- --- ---- --- ----- --- -- ------ -- -------- ---- -- -- ------------------------ ----- ---- -- - ----- -- - -------------- -- ------ --- ---- ---- --- ----- -- --- ---------------- -- -- - -------------------- --- --------- -- ---- -------- ---
如上代码所示,我们创建了一组处理不同 REST 动作的路由。例如,GET /items
表示获取所有 items 的 API,管理员可以使用该 API 获取所有 item 的列表。GET /items/:id
表示获取 item 的具体信息,包含了一个参数:item 的 ID,利用该参数可以查询指定的 item 信息。
3.2 处理请求
接下来,我们需要实现每个路由所处理的请求。我们可以通过 Node.js 模拟数据处理,来完成这个步骤。
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- -- ---- ---- ----- ----- - - - --- -- ----- -------- ------ --- -- - --- -- ----- -------- ------ --- -- - --- -- ----- -------- ------ --- -- -- -- --- --- ----- ----------------- ----- ---- -- - ---------------- --- -- --- - ------ ---- -- -- --------------------- ----- ---- -- - ----- -- - -------------- ----- ---- - ----------------- -- ------- --- -------------- -- ------- ------------------------- ---- ---- --- ----- -- --- --- --------- --------------- --- -- ---- - --- ---- ------------------ ----- ---- -- - ----- - ----- ----- - - --------- -- ------ -- ------- - -------------------------- --- ----- --- ------------ ------- - ----- ---- - - --- ------------ - -- ----- ------ -- ----------------- --------------- --- -- --- -- -------- ---- -- -- --------------------- ----- ---- -- - ----- -- - -------------- ----- - ----- ----- - - --------- ----- ----- - ---------------------- -- ------- --- -------------- -- ------ --- --- - ------------------------- ---- ---- --- ----- -- --- --- --------- ------- - -- ------ -- ------- - -------------------------- --- ----- --- ------------ ------- - ----- ---- - - --- ------------- ----- ------ -- ------------ - ----- --------------- --- -- ------ -- -------- ---- -- -- ------------------------ ----- ---- -- - ----- -- - -------------- ----- ----- - ---------------------- -- ------- --- -------------- -- ------ --- --- - ------------------------- ---- ---- --- ----- -- --- --- --------- ------- - ----- ---- - ------------- ------------------- --- --------------- --- ---------------- -- -- - -------------------- --- --------- -- ---- -------- ---
如上代码所示,我们通过引入 fake 数据的方式,实现了每个路由所需的处理请求。其中 GET /items
返回 items 数组,GET /items/:id
返回该 ID 所对应的 item 信息,POST /items
处理的是新增 item 信息,PUT /items/:id
处理的是更新 item 信息,DELETE /items/:id
处理删除 item 操作。对于每个请求,我们都做了各种空值判断、合法性校验和错误处理。
4. 测试 RESTful API
现在我们已经成功地创建了一个 RESTful API,但还需要测试它的可靠性和稳定性。
我们可以使用 Postman 或者 curl 命令来测试 RESTful API。
以下是一些测试栗子:
GET localhost:3000/items
: 获取所有 itemsGET localhost:3000/items/1
: 获取 ID 为 1 的 itemPOST localhost:3000/items?name=item4&price=400
: 新增一条 item 信息PUT localhost:3000/items/4?name=newitem4&price=500
: 更新 ID 为 4 的 item 的信息DELETE localhost:3000/items/4
: 删除 ID 为 4 的 item
我们可以查看每一个 API 的返回结果,以确保其已经被正确地实现。
5. 结论
通过本文的学习,您应该已经了解了如何使用 Express.js 来构建 RESTful API,并且熟悉了 RESTful API 的设计和实现的步骤。当您使用 Express.js 构建 Web 应用程序和构建 RESTful API 的时候,Express.js 是一个非常棒的选择,凭借其灵活性、易用性和性能优良,让 Web 应用程序开发变得简单快捷。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6718911cad1e889fe22c8199