RESTful API 测验:设计与实现
RESTful API 是现代 Web 开发的核心技术之一,通过 HTTP 协议实现资源的创建、读取、更新和删除(CRUD)。以下是一个完整的 RESTful API 测验设计与实现,包含代码示例和关键概念解析。
测验目标
- 测试对 RESTful 设计原则的理解。
- 验证 HTTP 方法(GET、POST、PUT、DELETE)的正确使用。
- 检查对状态码(如 200、201、404)的掌握。
测验题目与代码实例
题目 1:实现一个简单的用户管理 API
要求:
- 使用 Express.js 框架。
- 支持用户的增删改查操作。
代码实现:
const express = require('express');
const app = express();
app.use(express.json());
let users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' }
];
// 获取所有用户
app.get('/users', (req, res) => {
res.status(200).json(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({ error: 'User not found' });
res.status(200).json(user);
});
// 创建用户
app.post('/users', (req, res) => {
const newUser = {
id: users.length + 1,
name: req.body.name
};
users.push(newUser);
res.status(201).json(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({ error: 'User not found' });
user.name = req.body.name;
res.status(200).json(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({ error: 'User not found' });
users.splice(userIndex, 1);
res.status(204).send();
});
app.listen(3000, () => console.log('Server running on port 3000'));
题目 2:测试 API 的正确性
使用 Postman 或 cURL 测试以下场景:
-
获取所有用户
curl http://localhost:3000/users预期返回状态码:
200,数据为所有用户列表。 -
创建用户
curl -X POST -H "Content-Type: application/json" -d '{"name":"Charlie"}' http://localhost:3000/users预期返回状态码:
201,数据为新创建的用户信息。 -
更新用户
curl -X PUT -H "Content-Type: application/json" -d '{"name":"David"}' http://localhost:3000/users/1预期返回状态码:
200,数据为更新后的用户信息。 -
删除用户
curl -X DELETE http://localhost:3000/users/1预期返回状态码:
204(无内容)。
题目 3:错误处理
测试以下错误场景:
-
获取不存在的用户:
curl http://localhost:3000/users/999预期返回状态码:
404,错误信息为User not found。 -
创建用户时缺少必填字段:
curl -X POST -H "Content-Type: application/json" -d '{}' http://localhost:3000/users预期返回状态码:
400,错误信息为Name is required。
关键知识点总结
-
HTTP 方法:
GET:获取资源。POST:创建资源。PUT:更新资源。DELETE:删除资源。
-
状态码:
200:请求成功。201:资源创建成功。204:无内容(常用于删除操作)。404:资源未找到。400:客户端请求错误。
-
RESTful 设计原则:
- 资源通过 URL 标识。
- 无状态通信。
- 使用 JSON 作为数据格式。
通过以上测验,可以全面检验对 RESTful API 的理解与实践能力。
660

被折叠的 条评论
为什么被折叠?



