良好的 API 设计提升开发效率,降低维护成本。本文介绍 IMS 系统的 API 设计规范,包括 RESTful 风格、版本管理、文档生成等。
一、RESTful 设计原则
- 资源导向:用名词表示资源,如 /users、/orders
- HTTP 动词:GET 查询、POST 创建、PUT 更新、DELETE 删除
- 语义明确:URL 只表示资源,动作由 HTTP 方法决定
/* 用户管理 API 示例 */ GET /api/users /* 获取用户列表 */ GET /api/users/{id} /* 获取单个用户 */ POST /api/users /* 创建用户 */ PUT /api/users/{id} /* 更新用户 */ DELETE /api/users/{id} /* 删除用户 */ /* 订单相关操作 */ GET /api/orders /* 订单列表 */ GET /api/orders/{id} /* 订单详情 */ POST /api/orders /* 创建订单 */ POST /api/orders/{id}/pay /* 支付订单(动作用 POST) */ POST /api/orders/{id}/cancel /* 取消订单 */
二、请求响应规范
统一响应格式
/* 成功响应 */ { "code": 0, "message": "success", "data": { ... } } /* 分页响应 */ { "code": 0, "data": { "list": [...], "total": 100, "page": 1, "pageSize": 20 } } /* 错误响应 */ { "code": 1001, "message": "参数错误", "data": null }
分页参数
/* 分页请求 */
GET /api/users?page=1&pageSize=20&sort=createdAt,desc
三、版本管理
在 URL 或 Header 中体现版本:
/* URL 版本(推荐) */ GET /api/v1/users GET /api/v2/users /* Header 版本 */ Accept: application/vnd.ims.v1+json
四、错误码设计
- 0:成功
- 1000-1999:鉴权相关(1001 用户不存在,1002 密码错误,1003 token 过期)
- 2000-2999:业务相关(2001 库存不足,2002 订单不存在)
- 5000-5999:系统相关(5001 服务异常,5002 数据库错误)
五、API 文档生成
/* Spring Boot + SpringDoc OpenAPI */ /* pom.xml 添加依赖 */org.springdoc springdoc-openapi-starter-webmvc-ui 2.0.0
/* Swagger 访问地址 */ https://api.ims.js.cn/swagger-ui.html https://api.ims.js.cn/v3/api-docs
API 设计最佳实践:
- 所有 API 必须有完整的注释
- 返回数据中的时间用 ISO 8601 格式
- 敏感字段在返回时脱敏处理
- 接口添加限流防止恶意调用
六、总结
- RESTful 风格:资源 + HTTP 动词
- 统一响应格式:code + message + data
- URL 版本管理,兼容性好
- 用 Swagger/OpenAPI 自动生成文档