统一返回格式电子书终极指南:2026后端开发实战

2026-08-12 来源: 点击量


 API统一返回格式核心知识

标准响应结构

无论成功还是失败,所有接口都应返回一致的JSON结构:

统一返回格式电子书终极指南:2026后端开发实战

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详解:大厂面试必问的核心知识点

    ### Kong详解:大厂面试必问的核心知识点在微服务架构大行其道的今天,API网关作为流量的统一入口,其重要性不言而喻。而在众多网关技术中,Kong凭借其高性能、可扩展和云原生的特性,成为了大厂面试中高频出现的核心考点。搞懂Kong,不仅意味着掌握了一个工具...

  • 配置中心选哪个避坑指南:资深后端的血泪经验
    配置中心选哪个避坑指南:资深后端的血泪经验

    #### 配置中心选哪个避坑指南:资深后端的血泪经验在微服务架构的演进中,配置中心早已不再是“锦上添花”的组件,而是支撑系统稳定运行的“心脏”。从早期的硬编码、本地配置文件,到如今百花齐放的分布式配置中心,每一次技术选型都像是在为系统的地基...

  • 一文搞懂FastAPI规范,别再停留在会用层面
    一文搞懂FastAPI规范,别再停留在会用层面

    #### 一文搞懂FastAPI规范,别再停留在会用层面很多开发者对 FastAPI 的认知往往停留在“快”和“自动生成文档”上。确实,基于 Starlette 和 Pydantic 的它,在性能上足以对标 Go 和 Node.js。但如果你的代码里充斥着大量的逻辑堆砌,或者还在用同步函数处理高并发 IO,那...

  • 从零到一NestJS对比分析:帮你做出最优技术选型
    从零到一NestJS对比分析:帮你做出最优技术选型

    ### NestJS对比分析:帮你做出最优技术选型在Node.js服务端开发的生态中,Express曾长期占据着轻量级框架的霸主地位,以其极简和灵活赢得了无数开发者的青睐。然而,随着企业级应用对可维护性、可扩展性和团队协作效率的要求日益提高,NestJS作为一个架构驱动的全...

  • 2026年Elasticsearch选择最新趋势与技术选型指南
    2026年Elasticsearch选择最新趋势与技术选型指南

    ### 2026年Elasticsearch选择最新趋势与技术选型指南在2026年的技术版图中,Elasticsearch(ES)作为分布式搜索与数据分析引擎的地位依然稳固,但其应用范式正经历着深刻的重构。随着AI Agent的爆发、云原生架构的普及以及数据要素价值的凸显,企业对于ES的选型不再仅仅关注...

  • 为什么商业后端异常处理这么重要?深度剖析底层原理
    为什么商业后端异常处理这么重要?深度剖析底层原理

    为什么商业后端异常处理这么重要?深度剖析底层原理一句话主线:商业后端的异常处理,不只是捕获报错、打印日志,本质是在系统出现偏离预期的情况下,保护业务一致性、控制故障爆炸半径、保障可观测与可恢复,同时守住资金、订单、合规的风险底线;它是分...