Day 8: API 开发
设计和实现高质量的 RESTful API,处理各种业务场景。
API 设计原则
RESTful 设计
你:设计用户管理的 RESTful API,包含增删改查操作
Claude 会设计:
GET /api/users # 获取用户列表
GET /api/users/:id # 获取单个用户
POST /api/users # 创建用户
PUT /api/users/:id # 更新用户
DELETE /api/users/:id # 删除用户
资源嵌套
你:设计博客文章和评论的嵌套 API
设计结果:
GET /api/posts/:id/comments # 获取文章评论
POST /api/posts/:id/comments # 添加评论
PUT /api/comments/:id # 更新评论
DELETE /api/comments/:id # 删除评论
快速创建 API
Express 基础 API
你:用 Express 创建用户注册登录 API,包含密码加密和 JWT
Claude 会创建:
- 用户模型定义
- 注册接口(密码加密)
- 登录接口(JWT 生成)
- 身份验证中间件
数据验证
你:给用户注册接口添加数据验证,检查邮箱格式、密码强度
错误处理
你:创建统一的错误处理中间件,规范 API 错误响应格式
数据库集成
MongoDB + Mongoose
你:用 Mongoose 创建商品模型,包含基本字段和索引
MySQL + Prisma
你:用 Prisma 设计订单系统的数据库表,包含用户、商品、订单关系
数据库操作
你:实现商品 CRUD 操作,支持分页、筛选、排序
身份认证与授权
JWT 认证
你:实现完整的 JWT 身份认证流程
包含:
- 用户注册/登录
- Token 生成与验证
- Token 刷新机制
- 登出处理
权限控制
你:实现基于角色的权限控制,管理员和普通用户有不同权限
中间件设计
你:创建身份验证和权限检查中间件
文件上传处理
单文件上传
你:实现头像上传接口,支持图片压缩和格式验证
多文件上传
你:实现商品图片批量上传,支持拖拽上传
云存储集成
你:集成阿里云 OSS,实现文件上传到云存储
API 优化
接口缓存
你:给商品列表接口添加 Redis 缓存,提升查询性能
分页优化
你:实现高效的分页查询,支持游标分页
批量操作
你:实现商品批量删除接口,支持事务回滚
接口限流
你:添加接口限流,防止恶意请求
接口文档
Swagger 集成
你:用 Swagger 自动生成 API 文档,包含请求示例和响应格式
接口注释
你:给所有接口添加详细注释,说明参数和返回值
Postman 集合
你:导出 Postman 集合,方便前端测试接口
常见业务接口
用户系统
你:完整的用户系统 API,包括:
- 注册/登录/登出
- 个人资料管理
- 密码修改
- 邮箱验证
- 忘记密码
电商订单
你:电商订单 API,包括:
- 创建订单
- 订单支付
- 订单状态查询
- 订单取消/退款
- 订单历史
内容管理
你:博客内容管理 API,包括:
- 文章发布/编辑
- 文章分类标签
- 评论管理
- 点赞收藏
- 搜索功能
错误处理最佳实践
统一错误格式
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "邮箱格式不正确",
"details": [
{
"field": "email",
"message": "请输入有效的邮箱地址"
}
]
}
}
常见错误码
你:定义常用的错误码和错误信息
错误码 | 说明 |
---|---|
400 | 请求参数错误 |
401 | 未授权访问 |
403 | 权限不足 |
404 | 资源不存在 |
409 | 资源冲突 |
500 | 服务器内部错误 |
接口测试
单元测试
你:为用户注册接口写单元测试,覆盖正常和异常情况
集成测试
你:写集成测试,测试完整的用户注册登录流程
API 压力测试
你:用工具测试接口在高并发下的性能表现
第三方集成
支付接口
你:集成支付宝支付接口,处理支付回调
短信验证
你:集成短信验证码服务,实现手机号验证
社交登录
你:集成微信登录,实现第三方授权
接口安全
参数校验
你:严格校验所有输入参数,防止 SQL 注入和 XSS 攻击
接口签名
你:实现接口签名验证,防止接口被恶意调用
HTTPS 配置
你:配置 SSL 证书,强制使用 HTTPS
⚠️
安全提醒:永远不要相信前端传来的数据,所有参数都要在后端重新验证。
第八天完成! 你已经掌握了 API 开发的核心技能。明天学习数据库设计和优化。
下一步
Day 9: 数据库操作 - 数据库设计、查询优化、性能调优
练习建议:
- 选一个业务场景,完整实现相关的 API 接口
- 试试用 Postman 测试你创建的接口
- 体验一下自动生成的 API 文档效果