news 2026/8/24 2:56:25

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

作者头像

张小明

前端开发工程师

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/8/22 21:19:18

入门友好的低代码平台推荐,其中一款完全免费又能私有化部署

今天来跟大家分享5款我实际体验后觉得高效的国产低代码平台&#xff0c;个人或企业用起来都是很适合的。01&#xff5c;斑斑低代码 —— 完全免费 可私有化部署&#xff0c;团队自建系统的宝藏工具如果你希望零成本开始低代码开发&#xff0c;斑斑是真的会让人眼前一亮。平台全…

作者头像 李华
网站建设 2026/8/23 9:26:22

基于VUE的小剧场票务系统[VUE]-计算机毕业设计源码+LW文档

摘要&#xff1a;随着文化娱乐产业的蓬勃发展&#xff0c;小剧场演出作为一种独特的艺术形式受到越来越多人的喜爱。为了提高小剧场票务管理的效率和用户体验&#xff0c;本文设计并实现了基于VUE的小剧场票务系统。该系统利用VUE框架的前端优势&#xff0c;结合后端技术构建了…

作者头像 李华
网站建设 2026/8/24 1:09:31

AI不再“失忆“!揭秘让大模型记住一切的神奇技术,代码详解+实战教程,小白也能变大神!

一、引言 1.1 当今AI的记忆幻觉 像 ChatGPT 或编码助手这样的工具一开始会让人觉得很有用&#xff0c;但当你一遍又一遍地重复指令或偏好设置时&#xff0c;就会发现它们有很多使用不便的地方。此时&#xff0c;需要构建能够学习、进化和协作的智能体来扩展LLM能力&#xff0c;…

作者头像 李华
网站建设 2026/8/23 1:54:59

Wan2.2-T2V-A14B模型API接口设计与调用示例详解

Wan2.2-T2V-A14B 模型 API 接口设计与调用实践 在内容创作进入“工业化”时代的今天&#xff0c;传统视频制作流程正面临效率瓶颈&#xff1a;拍摄周期长、人力成本高、创意试错代价大。而人工智能生成内容&#xff08;AIGC&#xff09;的崛起&#xff0c;尤其是文本到视频&am…

作者头像 李华
网站建设 2026/8/22 17:25:18

如何快速实现Unity游戏翻译:XUnity.AutoTranslator终极指南

如何快速实现Unity游戏翻译&#xff1a;XUnity.AutoTranslator终极指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为外文游戏的语言障碍而烦恼吗&#xff1f;XUnity.AutoTranslator让你的Unity游…

作者头像 李华
网站建设 2026/8/22 21:44:37

阿里Qwen3双模型震撼开源:嵌入式与重排序技术革新RAG应用生态

阿里Qwen3双模型震撼开源&#xff1a;嵌入式与重排序技术革新RAG应用生态 【免费下载链接】Qwen3-Embedding-4B-GGUF 项目地址: https://ai.gitcode.com/hf_mirrors/Qwen/Qwen3-Embedding-4B-GGUF 大家好&#xff0c;我是深耕AI技术领域的老林。就在昨日&#xff0c;阿…

作者头像 李华