跳到主要内容

接口开发示例

搭建一个 RESTful 风格的 API 可以通过 Express 框架来实现。以下是一个详细的教程,展示如何使用 Express 搭建一个简单的 RESTful API。我们将构建一个用户管理系统,提供对用户的 CRUD(创建、读取、更新、删除)操作。

步骤 1:初始化项目

首先,创建一个新的项目目录并初始化 Node.js 项目:

mkdir restful-api
cd restful-api
npm init -y

步骤 2:安装依赖

安装 Express 和其他必要的中间件:

npm install 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 测试:

  1. 获取所有用户:

202407161636304

  1. 获取特定用户:

202407161639003

  1. 创建新用户:

202407161639498

  1. 更新用户:

202407161639504

  1. 删除用户:

202407161639081

完整代码

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 操作。你可以在此基础上扩展功能,例如添加身份验证、连接数据库等。

Loading Comments...