统一返回格式电子书终极指南: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设计规范",部分书籍支持在线阅读
-
Kong详解:大厂面试必问的核心知识点### Kong详解:大厂面试必问的核心知识点在微服务架构大行其道的今天,API网关作为流量的统一入口,其重要性不言而喻。而在众多网关技术中,Kong凭借其高性能、可扩展和云原生的特性,成为了大厂面试中高频出现的核心考点。搞懂Kong,不仅意味着掌握了一个工具...
-
配置中心选哪个避坑指南:资深后端的血泪经验#### 配置中心选哪个避坑指南:资深后端的血泪经验在微服务架构的演进中,配置中心早已不再是“锦上添花”的组件,而是支撑系统稳定运行的“心脏”。从早期的硬编码、本地配置文件,到如今百花齐放的分布式配置中心,每一次技术选型都像是在为系统的地基...
-
一文搞懂FastAPI规范,别再停留在会用层面#### 一文搞懂FastAPI规范,别再停留在会用层面很多开发者对 FastAPI 的认知往往停留在“快”和“自动生成文档”上。确实,基于 Starlette 和 Pydantic 的它,在性能上足以对标 Go 和 Node.js。但如果你的代码里充斥着大量的逻辑堆砌,或者还在用同步函数处理高并发 IO,那...
-
从零到一NestJS对比分析:帮你做出最优技术选型### NestJS对比分析:帮你做出最优技术选型在Node.js服务端开发的生态中,Express曾长期占据着轻量级框架的霸主地位,以其极简和灵活赢得了无数开发者的青睐。然而,随着企业级应用对可维护性、可扩展性和团队协作效率的要求日益提高,NestJS作为一个架构驱动的全...
-
2026年Elasticsearch选择最新趋势与技术选型指南### 2026年Elasticsearch选择最新趋势与技术选型指南在2026年的技术版图中,Elasticsearch(ES)作为分布式搜索与数据分析引擎的地位依然稳固,但其应用范式正经历着深刻的重构。随着AI Agent的爆发、云原生架构的普及以及数据要素价值的凸显,企业对于ES的选型不再仅仅关注...
-
为什么商业后端异常处理这么重要?深度剖析底层原理为什么商业后端异常处理这么重要?深度剖析底层原理一句话主线:商业后端的异常处理,不只是捕获报错、打印日志,本质是在系统出现偏离预期的情况下,保护业务一致性、控制故障爆炸半径、保障可观测与可恢复,同时守住资金、订单、合规的风险底线;它是分...