统一返回格式电子书终极指南:2026后端开发实战
API统一返回格式核心知识
标准响应结构
无论成功还是失败,所有接口都应返回一致的JSON结构:
json
编辑
1{
2 "code": 200, // 业务状态码
3 "message": "success", // 人类可读的描述信息
4 "data": {}, // 实际业务数据,无数据时为 null
5 "timestamp": 1719840000000, // 服务端响应时间戳(可选)
6 "requestId": "req-abc123" // 全局唯一请求ID(可选,排查问题神器)
7}
分页响应格式
json
编辑
1{
2 "code": 200,
3 "message": "success",
4 "data": {
5 "list": [...],
6 "total": 156,
7 "page": 1,
8 "size": 20,
9 "pages": 8
10 }
11}
错误响应格式
json
编辑
1{
2 "code": 10001,
3 "message": "参数校验失败",
4 "details": [
5 { "field": "email", "message": "邮箱格式不正确" },
6 { "field": "password", "message": "密码长度不能少于8位" }
7 ],
8 "requestId": "req-abc123xyz",
9 "timestamp": 1719840000000
10}
错误码分层设计
表格
下载为表格
导出为图片
错误码范围含义示例
0 / 200成功请求正常处理
1xxxx参数错误10001: 参数校验失败
2xxxx业务错误20001: 用户不存在
3xxxx系统错误30001: 服务不可用
Spring Boot 全局统一封装(核心代码)
java
编辑
1@RestControllerAdvice
2public class GlobalResponseHandler implements ResponseBodyAdvice {
3 @Override
4 public boolean supports(MethodParameter returnType, Class converterType) {
5 // 排除swagger、文件下载等特殊接口
6 return !returnType.getDeclaringClass().getName().contains("springdoc");
7 }
8
9 @Override
10 public Object beforeBodyWrite(Object body, MethodParameter returnType,
11 MediaType selectedContentType, Class converterType,
12 ServerHttpRequest request, ServerHttpResponse response) {
13 if (body instanceof ApiResult) {
14 return body;
15 }
16 response.getHeaders().setContentType(MediaType.APPLICATION_JSON);
17 return ApiResult.success(body);
18 }
19}
全局异常处理
表格
下载为表格
导出为图片
异常类型HTTP状态码处理方式
参数校验异常400捕获 MethodArgumentNotValidException
业务异常400/409自定义 BusinessException
认证异常401捕获 AuthenticationException
权限异常403捕获 AccessDeniedException
资源不存在404捕获 ResourceNotFoundException
限流异常429捕获 RateLimitException
未预期异常500兜底捕获,记录日志,返回友好提示
两大经典反模式(避坑)
反模式一:永远返回200,错误码放body
危害:HTTP基础设施(缓存、监控、日志、网关)全部失效
反模式二:业务错误全部返回500
危害:参数错误、用户不存在等客户端问题应使用4xx,5xx会触发告警、熔断、重试
电子书获取建议
由于文档搜索暂时不可用,推荐你通过以下途径获取相关电子书:
掘金小册:搜索"RESTful API设计与实现",有从规范到实战的完整教程
GitHub:搜索 spring-boot-best-practice 或 api-design-guide,很多开源项目包含完整的统一返回格式规范文档(PDF/Markdown)
淘宝/京东:搜索《RESTful Web API设计与实现》《Spring Boot实战》等书籍的电子版
微信读书/豆瓣阅读:搜索"API设计规范",部分书籍支持在线阅读
-
精选限流入门到精通,这份后端学习路线请收好“精选限流”这个说法在技术圈和内容运营圈含义完全不同,结合你的技术背景,我按两个维度分别整理,方便你按需取用。一、技术维度:高并发限流方案精选限流是分布式系统稳定性的核心防线,2026年主流方案已从单机走向分布式精细化治理,核心算法与选型如...
-
Tornado避坑指南:资深后端的血泪经验Tornado 是一个用 Python 编写的开源 Web 框架和异步网络库,最初由 FriendFeed 公司开发,后被 Facebook 收购并开源。与 Flask 或 Django 等传统的 WSGI 框架不同,Tornado 是一个独立的 Web 服务器,专为高性能、高并发场景而设计。核心特点与优势异步非阻塞 I/O:基于事件驱动的...
-
【推荐】CodeIgniter精选最佳实践,大厂都在用CodeIgniter 是一款基于 PHP 的开源 Web 应用开发框架。它以轻量级和高性能著称,非常适合中小型项目的快速开发以及遗留系统的重构。为你梳理了 CodeIgniter 的核心精选内容,涵盖架构、优势及学习资源:核心架构与特点MVC 设计模式:采用模型(Model)-视图(View)-控制器(C...
-
为什么Go安全方案这么重要?深度剖析底层原理构建一套完善的 Go 安全方案,核心在于理解 Go 的安全是“两层防线”:第一层是语言自带的“兜底层”(如 GC 内存管理、强类型系统),第二层则是开发者必须亲自守卫的“业务层”(如输入验证、权限校验)。结合当前的行业最佳实践,为你梳理了一套从编码到部署的...
-
【硬核】SQLAlchemy,从原理到落地全解析SQLAlchemy 是 Python 生态中最流行、功能最强大的数据库工具包和对象关系映射(ORM)框架。它就像一座桥梁,让你可以用 Python 的面向对象思维来操作数据库,而无需编写大量复杂的原生 SQL 语句。它的核心优势在于双模式架构,既提供了面向对象的 ORM 层,也保留了灵活...
-
后端数据校验入门到精通,这份后端学习路线请收好在 Joomla 的开发与日常运营中,“Generator”(生成器)通常指代两类工具:一类是帮助开发者快速搭建组件、模块等扩展骨架的代码生成工具,另一类是面向网站管理员的内容或功能生成扩展。结合你之前的优化需求,以下为你梳理了 Joomla 生态中几款主流的 Generator 工...