news 2026/6/15 18:57:38

如何设计一个优秀的接口?统一结果返回值

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何设计一个优秀的接口?统一结果返回值

文章目录

  • ✨ 一、接口的统一返回值是什么?
  • ✨ 二、为什么要统一返回值?
  • ✨ 三、怎么做?(带代码实现)
      • 1. 先定义统一返回体 ResponseResult
      • 2. 在Controller层中用
      • 3. 全局异常统一放回

✨ 一、接口的统一返回值是什么?

它是一件外套,把所有接口的返回内容装进同一套格式里。无论请求成功还是出错,都给前端返回固定结构,比如:

{"code":200,"message":"OK","data":{...}}

像讲故事时总是用“开头、正文、结尾”一样,你的接口也需要固定的句式,让对方不用猜今天你会不会突然换腔调。

常见结构会包含:

  • code业务状态码(不是 HTTP 状态码)

  • message提示信息(成功/失败原因)

  • data业务数据

  • timestamp(可选)响应时间

  • traceId(可选)链路追踪辅助

🎐 这让你的接口像带格式的礼物盒,不会乱七八糟。


✨ 二、为什么要统一返回值?

这一段像在写接口的“生存理由”:

  1. 前端更好处理
    前端只需要写一套判断逻辑,比如code === 200 OK。如果每个接口都长得不一样,前端会像解一个拼不出来的拼图。

  2. 调试更舒服
    报错结构一致,日志里查问题一眼看穿。

  3. 团队协作不会混乱
    新人写接口也不用再纠结“到底怎么返回”。

  4. 更适合大项目/中台
    各个服务统一语言,像所有人都用同一个字典。

  5. 可以扩展功能
    比如自动加 traceId、自动包装异常、全局异常处理等等,统一返回是基础。


✨ 三、怎么做?(带代码实现)

这一步像搭一座小桥,把规范送到所有接口上。


1. 先定义统一返回体 ResponseResult

@DatapublicclassR<T>{privateIntegercode;privateStringmessage;privateTdata;publicstatic<T>R<T>success(Tdata){R<T>r=newR<>();r.setCode(200);r.setMessage("success");r.setData(data);returnr;}publicstatic<T>R<T>fail(Stringmessage){R<T>r=newR<>();r.setCode(500);r.setMessage(message);returnr;}}

2. 在Controller层中用

@GetMapping("/user/{id}")publicR<User>getUser(@PathVariableLongid){Useruser=userService.getById(id);returnR.success(user);}

3. 全局异常统一放回

@RestControllerAdvicepublicclassGlobalExceptionHandler{@ExceptionHandler(Exception.class)publicRhandleException(Exceptione){returnR.fail(e.getMessage());}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 10:32:32

地平线首届技术生态大会擘画智驾产业新范式

近日&#xff0c;地平线首届技术生态大会&#xff08;Horizon Together 2025&#xff09;圆满落幕。为期两天的行业盛会&#xff0c;聚全球智慧、汇产业力量&#xff0c;以技术向高突破为锚点&#xff0c;以生态协同普惠为落点&#xff0c;深度解构产业核心议题&#xff0c;为智…

作者头像 李华
网站建设 2026/6/15 10:32:25

Wan2.2-T2V-A14B能否生成银行理财产品说明视频?金融合规内容挑战

Wan2.2-T2V-A14B能否生成银行理财产品说明视频&#xff1f;金融合规内容挑战 在数字金融服务加速演进的今天&#xff0c;客户对产品信息获取方式的需求正悄然改变。传统的纸质说明书和静态网页已难以满足用户对“直观、易懂、可信”的期待。越来越多银行开始尝试用短视频来讲解…

作者头像 李华
网站建设 2026/6/15 8:40:59

大模型算力不够怎么办?架构创新让AI开发成本砍半,2026年必备技能

架构创新是大模型突破算力枷锁、实现代际跃迁的核心密码。 2025 年量子位发布的 AI 十大趋势报告中&#xff0c;“预训练决定大模型格局梯队&#xff0c;架构创新决定预训练水平” 这一趋势&#xff0c;精准戳中了当前大模型产业从 “规模竞赛” 转向 “效率突围” 的核心矛盾&…

作者头像 李华
网站建设 2026/6/15 10:34:11

AI记忆“开挂“了!Evo-Memory让大模型边学边进化,程序员必备技能

Evo-Memory是全新评估框架&#xff0c;使大模型具备测试时学习与自进化记忆能力&#xff0c;支持持续经验复用与动态演化。通过"搜索-综合-演化"循环和ReMem方法(Think-Act-Refine Memory)&#xff0c;模型能在连续任务中主动反思并重组记忆。实验显示&#xff0c;该…

作者头像 李华
网站建设 2026/6/14 22:06:50

ubuntu24.04 安装后常用配置动态更新

ubuntu24.04 输入法 输入法,如果用的是五笔 安装远程工具 https://www.asklink.com/linux-download.html sudo dpkg -i AskLink-4.0.25.0-x86_64.deb Windows和Ubuntu双系统调整启动顺序 终端输入sudo gedit /etc/default/grub 如果没有gedit&#xff0c;用以下命令安装 …

作者头像 李华
网站建设 2026/6/15 10:46:17

爱回收 API 接口全面解析:功能模块、调用规范与权限申请指南

一、爱回收 API 接口整体概述​​ 爱回收 API 接口是爱回收开放平台提供的标准化数据交互通道&#xff0c;旨在赋能第三方平台&#xff08;电商、手机品牌商、企业服务平台等&#xff09;快速集成二手电子产品回收、估价、订单管理等核心能力&#xff0c;实现 “估价 - 下单 -…

作者头像 李华