统一返回格式电子书终极指南: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设计规范",部分书籍支持在线阅读

相关文章
  • 精选限流入门到精通,这份后端学习路线请收好
    精选限流入门到精通,这份后端学习路线请收好

    “精选限流”这个说法在技术圈和内容运营圈含义完全不同,结合你的技术背景,我按两个维度分别整理,方便你按需取用。一、技术维度:高并发限流方案精选限流是分布式系统稳定性的核心防线,2026年主流方案已从单机走向分布式精细化治理,核心算法与选型如...

  • Tornado避坑指南:资深后端的血泪经验
    Tornado避坑指南:资深后端的血泪经验

    Tornado 是一个用 Python 编写的开源 Web 框架和异步网络库,最初由 FriendFeed 公司开发,后被 Facebook 收购并开源。与 Flask 或 Django 等传统的 WSGI 框架不同,Tornado 是一个独立的 Web 服务器,专为高性能、高并发场景而设计。核心特点与优势异步非阻塞 I/O:基于事件驱动的...

  • 【推荐】CodeIgniter精选最佳实践,大厂都在用
    【推荐】CodeIgniter精选最佳实践,大厂都在用

    CodeIgniter 是一款基于 PHP 的开源 Web 应用开发框架。它以轻量级和高性能著称,非常适合中小型项目的快速开发以及遗留系统的重构。为你梳理了 CodeIgniter 的核心精选内容,涵盖架构、优势及学习资源:核心架构与特点MVC 设计模式:采用模型(Model)-视图(View)-控制器(C...

  • 为什么Go安全方案这么重要?深度剖析底层原理
    为什么Go安全方案这么重要?深度剖析底层原理

    构建一套完善的 Go 安全方案,核心在于理解 Go 的安全是“两层防线”:第一层是语言自带的“兜底层”(如 GC 内存管理、强类型系统),第二层则是开发者必须亲自守卫的“业务层”(如输入验证、权限校验)。结合当前的行业最佳实践,为你梳理了一套从编码到部署的...

  • 【硬核】SQLAlchemy,从原理到落地全解析
    【硬核】SQLAlchemy,从原理到落地全解析

    SQLAlchemy 是 Python 生态中最流行、功能最强大的数据库工具包和对象关系映射(ORM)框架。它就像一座桥梁,让你可以用 Python 的面向对象思维来操作数据库,而无需编写大量复杂的原生 SQL 语句。它的核心优势在于双模式架构,既提供了面向对象的 ORM 层,也保留了灵活...

  • 后端数据校验入门到精通,这份后端学习路线请收好
    后端数据校验入门到精通,这份后端学习路线请收好

    在 Joomla 的开发与日常运营中,“Generator”(生成器)通常指代两类工具:一类是帮助开发者快速搭建组件、模块等扩展骨架的代码生成工具,另一类是面向网站管理员的内容或功能生成扩展。结合你之前的优化需求,以下为你梳理了 Joomla 生态中几款主流的 Generator 工...