RESTful API 是现代 Web 应用程序中最常用的 API 类型之一。它们是基于 HTTP 协议的,并使用 HTTP 动词(如 GET、POST、PUT 和 DELETE)来执行各种操作。在本文中,我们将介绍如何使用 LoopBack 和 Express.js 构建 RESTful API。
LoopBack 和 Express.js 简介
LoopBack 是一个强大的 Node.js 框架,用于快速构建 RESTful API 和微服务。它是一个开源的、可扩展的、高度可定制的框架,具有以下优点:
- 简单易用,易于学习和上手
- 支持多种数据库,包括 MongoDB、MySQL、PostgreSQL 和 Oracle
- 提供了一组强大的 API 工具,包括数据模型、数据源、访问控制和身份验证
- 集成了 Swagger UI,方便 API 文档的生成和查看
Express.js 是另一个流行的 Node.js 框架,用于构建 Web 应用程序和 API。它是一个轻量级的框架,具有以下优点:
- 简单易用,易于学习和上手
- 可扩展性好,支持中间件和插件
- 提供了一组强大的路由工具,方便 URL 映射和请求处理
- 支持多种模板引擎,包括 EJS、Handlebars 和 Pug
构建 RESTful API
在本文中,我们将使用 LoopBack 和 Express.js 构建一个简单的 RESTful API,用于管理用户信息。我们将实现以下功能:
- 获取所有用户信息
- 获取单个用户信息
- 创建新用户
- 更新用户信息
- 删除用户
1. 创建 LoopBack 应用程序
首先,我们需要安装 LoopBack CLI 工具,用于创建和管理 LoopBack 应用程序。在命令行中运行以下命令:
npm install -g loopback-cli
安装完成后,我们可以使用以下命令创建 LoopBack 应用程序:
lb app myapp
其中 myapp
是应用程序的名称。创建完成后,我们可以进入应用程序目录并启动它:
cd myapp npm start
现在,我们可以在浏览器中访问 http://localhost:3000/explorer
,看到 LoopBack 应用程序的 API 文档。
2. 创建数据模型
接下来,我们需要创建一个数据模型,用于存储用户信息。在 LoopBack 中,我们可以使用 lb model
命令创建数据模型。在命令行中运行以下命令:
lb model user
然后按照提示输入数据模型的属性,如下所示:
-- -------------------- ---- ------- - ----- --- ----- ----- ---- - ------ --- ----------- -- ------ ---- --- -- -------- - ------ ------- ---- ----- -------------- - ------ ---- --- --- ---- ---- --- - ------ ------ ---- ----- -- ----- ---- ----- - ------ ----- -- ------ ----- ------ ----- --- ---- ---- ---------- ---- ----- -- ----- -------- ---- ---- ----- - -------- ----- ---- ------ ----------------- - -------- ----- ------ - --------- --- - ------- ----------- ----- --- ------ ---
在创建完成后,我们可以在 common/models
目录下找到 user.json
文件,其中包含了数据模型的定义。
3. 创建 RESTful API
现在,我们可以使用 LoopBack 提供的 API 工具来创建 RESTful API。在 user.json
文件中,我们可以添加以下代码:
-- -------------------- ---- ------- ---------- - ------- - -------- - ------- - ---------------------- -- ----------- - ---------------------- -- -------------- - ---------------------- -- ------------- - ---------------------- - - - -- ---------- - ----------------------- - ---------- - - ------ --------- ------- --------- ----------- ------ ------- - --------- ------- - -- - ------ ---------- ------- --------- ----------- ------ ------- -------------------- - -- ---------- - ------ ------- ------- -------- ------- ---- -- ------- - ------- ------ ------- --- - - -
这段代码将为我们创建以下 RESTful API:
- GET /api/users:获取所有用户信息
- GET /api/users/:id:获取单个用户信息
- POST /api/users:创建新用户
- PUT /api/users/:id:更新用户信息
- DELETE /api/users/:id:删除用户
4. 实现 API 功能
最后,我们需要实现 API 的各项功能。在 user.js
文件中,我们可以添加以下代码:
-- -------------------- ---- ------- -------------- - -------------- - ------------------------- - ---------------- -------- --------- - --- --- - ----------------------------- --- ----------- - --- -- ----------------------- -- ------------- - ------ - ------ -- --- ------------ - ------------ -- --- ------------------- - --------------- - ----------------- -------- ---------- -- -------------------- ------ ------------- ----- - --- ----------- - ------------------------------------------------ -- ------------- - -- -------------- - ------------------- - --------------- - ---- - --------------- - --------------- - - ------- --- ---------------------- ------------- ----- - --- ----------- - ------------------------------------------------ -- ------------- - -- ----------- - --------------- - --------------- -- --- ---------------------- - --------------- - - ------- --- --
这段代码实现了以下功能:
User.filterByLoggedInUser
:根据当前登录用户过滤用户信息User.observe('before save')
:在保存用户信息前设置当前登录用户的 IDUser.observe('access')
:在访问用户信息时根据当前登录用户过滤用户信息
现在,我们可以使用以下代码测试 API:
-- -------------------- ---- ------- ----- ------- - --------------------- ----- --- - ---------------------------- -------------- ----- -- -- - --- ------ --------------- -- -- - ----- --- - ----- ------------ ------------------------- ------- ------ ------------------- --------- -------- --- ----- - ------------ --- ---------- --- --- ------- ----- -- -- - ----- --- - ----- ------------ ------------------ --------------------- ------- ------------------------------------ ------------------------------------------- --- ---------- ------ - --- ------ ----- -- -- - ----- --- - ----- ------------ ------------------- --------------------- ------ ------- ----- ----- ------ ------ ----------------------- --------- -------- --- ------------------------------------ ----------------------------------- ------- --- ---------- ------ - ------ ----- -- -- - ----- ---- - ----- ------------ ------------------ --------------------- ------- ----- ------ - ---------------- ----- ---- - ----- ------------ ---------------------------- --------------------- ------ ------- ----- -------- ----- --- ------------------------------------- --------------------------------------- ------- --- ---------- ------ - ------ ----- -- -- - ----- ---- - ----- ------------ ------------------ --------------------- ------- ----- ------ - ---------------- ----- ---- - ----- ------------ ------------------------------- --------------------- ------- ------------------------------------- --- ---
这段代码使用了 Supertest 库来测试 API 的各项功能。
总结
在本文中,我们介绍了如何使用 LoopBack 和 Express.js 构建 RESTful API。我们创建了一个用户管理 API,并实现了获取所有用户信息、获取单个用户信息、创建新用户、更新用户信息和删除用户等功能。希望本文能够对你的学习和工作有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65081fe895b1f8cacd349782