接口开发示例
搭建一个 RESTful 风格的 API 可以通过 Express 框架来实现。以下是一个详细的教程,展示如何使用 Express 搭建一个简单的 RESTful API。我们将构建一个用户管理系统,提供对用户的 CRUD(创建、读取、更新、删除)操作。
步骤 1:初始化项目
首先,创建一个新的项目目录并初始化 Node.js 项目:
- npm
- Yarn
- pnpm
mkdir restful-api
cd restful-api
npm init -y
mkdir restful-api
cd restful-api
yarn init -y
mkdir restful-api
cd restful-api
pnpm init -y
步骤 2:安装依赖
安装 Express 和其他必要的中间件:
- npm
- Yarn
- pnpm
npm install express body-parser
yarn add express body-parser
pnpm add express body-parser
步骤 3:设置 Express 服务器
创建一个名为 server.js
的文件,并设置基本的 Express 服务器:
server.js
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const port = 8080;
// 使用body-parser中间件解析请求体
app.use(bodyParser.json());
// 设置基本路由
app.get('/', (req, res) => {
res.json({ code: 200, msg: 'success', data: 'Welcome to the RESTful API' });
});
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
步骤 4:创建用户数据
为了简单起见,我们将使用一个内存中的数组来存储用户数据。创建一个名为 data.js
的文件:
data.js
let users = [
{ id: 1, name: 'Eave', email: 'eave@eaveluo.com' },
{ id: 2, name: 'Evan', email: 'evan@eaveluo.com' },
];
module.exports = users;
步骤 5:创建 CRUD 操作
在 server.js
文件中添加 CRUD 操作:
server.js
const express = require('express');
const bodyParser = require('body-parser');
const users = require('./data');
const app = express();
const port = 8080;
app.use(bodyParser.json());
// 获取所有用户
app.get('/users', (req, res) => {
res.json({ code: 200, msg: 'success', data: users });
});
// 获取特定用户
app.get('/users/:id', (req, res) => {
const user = users.find((u) => u.id === parseInt(req.params.id));
if (!user) return res.status(404).json({ code: 404, msg: 'User not found' });
res.json({ code: 200, msg: 'success', data: user });
});
// 创建新用户
app.post('/users', (req, res) => {
const newUser = {
id: users.length + 1,
name: req.body.name,
email: req.body.email,
};
users.push(newUser);
res.status(201).json({ code: 201, msg: 'success', data: newUser });
});
// 更新用户
app.put('/users/:id', (req, res) => {
const user = users.find((u) => u.id === parseInt(req.params.id));
if (!user) return res.status(404).json({ code: 404, msg: 'User not found' });
user.name = req.body.name;
user.email = req.body.email;
res.json({ code: 200, msg: 'success', data: user });
});
// 删除用户
app.delete('/users/:id', (req, res) => {
const userIndex = users.findIndex((u) => u.id === parseInt(req.params.id));
if (userIndex === -1)
return res.status(404).json({ code: 404, msg: 'User not found' });
const deletedUser = users.splice(userIndex, 1);
res.json({ code: 200, msg: 'success', data: deletedUser });
});
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
步骤 6:测试 API
使用测试工具如 ApiFox 或 cURL 等来测试 API,下文采用 apifox 测试:
- 获取所有用户:
- 获取特定用户:
- 创建新用户:
- 更新用户:
- 删除用户:
完整代码
server.js
const express = require('express');
const bodyParser = require('body-parser');
const users = require('./data');
const app = express();
const port = 8080;
app.use(bodyParser.json());
// 获取所有用户
app.get('/users', (req, res) => {
res.json({ code: 200, msg: 'success', data: users });
});
// 获取特定用户
app.get('/users/:id', (req, res) => {
const user = users.find((u) => u.id === parseInt(req.params.id));
if (!user) return res.status(404).json({ code: 404, msg: 'User not found' });
res.json({ code: 200, msg: 'success', data: user });
});
// 创建新用户
app.post('/users', (req, res) => {
// 校验请求参数
if (!req.body.name || !req.body.email) {
return sendResponse(res, 400, 'Invalid request body', null);
}
const newUser = {
id: users.length + 1,
name: req.body.name,
email: req.body.email,
};
users.push(newUser);
res.status(201).json({ code: 201, msg: 'success', data: newUser });
});
// 更新用户
app.put('/users/:id', (req, res) => {
const user = users.find((u) => u.id === parseInt(req.params.id));
if (!user) return res.status(404).json({ code: 404, msg: 'User not found' });
user.name = req.body.name;
user.email = req.body.email;
res.json({ code: 200, msg: 'success', data: user });
});
// 删除用户
app.delete('/users/:id', (req, res) => {
const userIndex = users.findIndex((u) => u.id === parseInt(req.params.id));
if (userIndex === -1)
return res.status(404).json({ code: 404, msg: 'User not found' });
const deletedUser = users.splice(userIndex, 1);
res.json({ code: 200, msg: 'success', data: deletedUser });
});
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
data.js
let users = [
{ id: 1, name: 'Eave', email: 'eave@eaveluo.com' },
{ id: 2, name: 'Evan', email: 'evan@eaveluo.com' },
];
module.exports = users;
这个简单的教程展示了如何使用 Express 创建一个 RESTful API,包括 CRUD 操作。你可以在此基础上扩展功能,例如添加身份验证、连接数据库等。