📌 写在开头
本篇结合笔者学习资料与实战经验,带你系统掌握RESTful API的核心概念、设计规范与实现方法。通过一个完整的Todo应用API示例,进一步掌握URI设计到状态码处理,文末附赠参考文章和RESTful架构详解拓展知识边界~ 🌟
🌐 什么是RESTful API?
REST(表现层状态转移) 是一种软件架构风格,不是标准,但广泛用于设计网络API。其核心特点:
- 资源为中心:万物皆资源,用URI唯一标识(如
/todos/123) - 统一接口:通过HTTP方法(GET/POST/PUT/DELETE)操作资源
- 无状态:每次请求独立,服务器不保存客户端状态
- 可缓存:提升性能,减少重复请求
- 分层系统:支持代理、缓存等中间层
- 按需代码:动态扩展客户端功能(如JavaScript)
(更多架构细节可参考:RESTful架构详解)
🔧 RESTful设计规范
1️⃣ URI设计规则
- 格式:
scheme://host:port/path?query#fragment- 示例:
http://api.example.com/v1/todos?page=2
- 示例:
- 规范:
- 全小写,用连字符
-而非下划线_ - 层级用
/分隔,避免过深(如/v1/users/123/orders) - 资源名用复数(如
/todos而非/todo) - 禁用动词,用HTTP方法表示动作
- 结尾不加
/
- 全小写,用连字符
2️⃣ HTTP方法语义化
| 方法 | 作用 | 示例 |
|---|---|---|
| GET | 获取资源 | GET /todos |
| POST | 新增资源 | POST /todos |
| PUT | 更新整个资源 | PUT /todos/123 |
| DELETE | 删除资源 | DELETE /todos/123 |
💻 实战:用Node.js实现Todo API
步骤1:初始化项目
mkdir rest-api && cd rest-api
npm init -y
npm install express
步骤2:编写核心代码
const express = require('express');
const app = express();
app.use(express.json());
let todos = [
{ id: 1, title: "Learn JavaScript", done: false }
];
// 获取所有Todo
app.get('/todos', (req, res) => {
res.status(200).json(todos);
});
// 新增Todo
app.post('/todos', (req, res) => {
const newTodo = { id: Date.now(), ...req.body };
todos.push(newTodo);
res.status(201).json(newTodo);
});
// 其他PUT、DELETE方法类似,完整代码见参考文章
app.listen(3000, () => {
console.log('Server running on http://localhost:3000');
});
步骤3:测试API
- 获取所有Todo
curl http://localhost:3000/todos - 创建新Todo
curl -X POST -H "Content-Type: application/json" \ -d '{"title":"Build REST API"}' http://localhost:3000/todos
💡 提示:更多RESTful设计细节,推荐阅读以下资源:
- 《RESTful API规范详解》
- RESTful架构详解
🚀 现在就去动手实现你的第一个API吧!遇到问题欢迎评论区交流~ 💬