统一响应码

  • 前言
  • 统一响应码
    • 响应状态
    • 响应结果
    • 例子

前言

作为后端服务器,返回给前端的数据需要统一格式,一般为:

{code:200,msg: "接口请求成功",data:...
}

为了方便开发,会考虑对返回状态、返回结构体进行封装

统一响应码

响应状态

@Getter
@AllArgsConstructor
public enum ResponseStatus {OK(20000, "操作成功"),ERROE(55555, "操作失败"),FORM_VALID_ERROR(33333, "表单校验失败"),ADMIN_EXIST(33334, "员工已存在"),NOT_IMG(33335, "不是图片"),IMG_TYPE_ERROR(33336, "图片格式不正确"),IMG_TOO_LARGE(33337, "图片太大"),IMG_SIZE_ERROR(33338, "图片尺寸不正确"),UPLOAD_ERROR(33339, "图片上传失败"),UNKOWN_ERROR(50000, "服务器错误"),NO_LOGIN(44444, "未登录"),NO_PERM(44555, "没权限"),RETURN_STRING_ERROR(47777, "返回String类型错误"),;private int status;private String message;public void setStatus(int status) {this.status = status;}public void setMessage(String message) {this.message = message;}
}

响应结果

@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ResponseResult<T> {private int status;private String message;private T data;private ResponseResult(ResponseStatus responseStatus, T t) {this.status = responseStatus.getStatus();this.message = responseStatus.getMessage();this.data = t;}/*** 成功的方法*/public static <T> ResponseResult<T> success() {return getInstance(ResponseStatus.OK, null);}/*** 成功的方法* 携带数据*/public static <T> ResponseResult<T> success(T t) {return getInstance(ResponseStatus.OK, t);}/*** 失败的方法*/public static <T> ResponseResult<T> error() {return getInstance(ResponseStatus.ERROE, null);}/*自定义失败状态码*/public static <T> ResponseResult<T> error(ResponseStatus responseStatus) {return getInstance(responseStatus, null);}/*** 自定义状态码和数据** @param responseStatus* @param t* @param <T>* @return*/public static <T> ResponseResult<T> error(ResponseStatus responseStatus, T t) {return getInstance(responseStatus, t);}/*** 失败的方法*/public static <T> ResponseResult<T> error(T t) {return getInstance(ResponseStatus.ERROE, t);}private static <T> ResponseResult<T> getInstance(ResponseStatus responseStatus, T t) {return new ResponseResult<T>(responseStatus, t);}
}

例子

@RestController
public class XxxController {@AutowiredXxxService xxxService;@RequestMapping("xxx")public ResponseResult xxx() {return ResponseResult.success(xxxService.xxx());}
}

这样返回的就是自定义格式,当然具体的实现会根据项目进行调整,这些只是大致原理

下一篇跳转:2.全局统一返回处理.

2022-05-02 一.统一响应码相关推荐

  1. HTTP响应码与HTTP头标

    响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行. 响应码分五种类型,由它们的第一位数字表示: 1xx:信息,请求收到,继续处理 2xx:成功,行为被成功地接受.理解和采纳 3 ...

  2. v18.02 鸿蒙内核源码分析(源码结构) | 内核文件各自含义 | 百篇博客分析HarmonyOS源码

    子曰:"富而可求也,虽执鞭之士,吾亦为之.如不可求,从吾所好." <论语>:述而篇 百篇博客系列篇.本篇为: v18.xx 鸿蒙内核源码分析(源码结构篇) | 内核文件 ...

  3. HTTP之原理,长短连接,响应码,三握四挥,八种方法

    文章目录 1 HTTP原理 1.1 HTTP协议与TCP/IP协议的关系 1.2 无状态的HTTP协议 2 长短连接详解 2.1 简介 2.2 TCP短连接 2.3 TCP长连接 2.4 长连接短连接 ...

  4. v62.02 鸿蒙内核源码分析(文件概念) | 为什么说一切皆是文件 | 百篇博客分析OpenHarmony源码

    司马牛忧曰:"人皆有兄弟,我独亡."子夏曰:"商闻之矣:死生有命,富贵在天.君子敬而无失,与人恭而有礼.四海之内,皆兄弟也.君子何患乎无兄弟也?" <论语 ...

  5. SpringCloud采用Jackson序列化统一响应不正当的消息转换器导致的异常问题

    SpringCloud采用Jackson序列化统一响应不正当的消息转换器导致的异常问题 环境说明 org.springframework.cloud.spring-cloud-dependencies ...

  6. 【FastAPI后台API 五】统一响应json数据格式

    统一响应json数据格式 本系列博客是配合Vue开发一套后台管理系统,对应的Vue教程见个人博客 https://www.charmcode.cn/ 现在了很多项目,都是前后端分离的项目,所以了前后端 ...

  7. 基于Spring AOP的统一响应体的实现(注解版)

    基于Spring AOP的统一响应体的实现(注解版) 一.前言 在上一篇系列中 我们 统一参数校验,统一结果响应,统一异常处理,统一错误处理,统一日志记录,统一生成api文档, 对于统一数据响应返回规 ...

  8. springMVC02-SSM整合(Result统一响应数据格式、异常页面修改、SSM整合vue-elementUI小案例、SpringMVC的拦截器Interceptor)

    文章目录 今日内容 一.SSM整合[重点] 1 SSM整合配置 问题导入 1.1 SSM整合流程 1.2 SSM整合配置 1.2.1 创建工程,添加依赖和插件 1.2.2 Spring整合Mybati ...

  9. 硬件大熊原创合集(2022/05更新)

    2022/05月份更新的篇章 NFC之华为AIPASS认证:测试系统简介 NFC之华为AIPASS认证:测试用例简介 智能门锁:人脸识别技术 清晰认知事物概念 传统的职业坐标体系中,个体依赖于工作本身 ...

最新文章

  1. iphone屏幕录制没声音_苹果屏幕录制没有声音?快检查这个功能是否打开
  2. Spring MVC整合Velocity
  3. angular模块库开发实例
  4. int类型的实参与int*类型的形参不兼容_谁告诉的你们Python是强类型语言!站出来,保证不打你!...
  5. xvid 详解 代码分析 编译等
  6. javascript编译压缩
  7. Chrome开发者工具之JavaScript内存分析
  8. svn版本备份和恢复注意事项
  9. 飞机游戏跟踪导弹的算法[C#源码]
  10. python基础--闭包函数和装饰器
  11. 【竞赛02-a】【题解】第十二届电工杯全国大学生数学建模大赛B题
  12. 博客搬家工具(服务)详解
  13. php输入指定文字转换成图片的简单例子
  14. 华为人均工资高达70万,但先看看华为员工的16项标准
  15. IMAP4协议介绍nbsp;工作原理
  16. PHP在线横幅广告店标LOGO制作网站源码
  17. 《Python安全攻防:渗透测试实战指南》学习一
  18. 关于拯救者笔记本亮度调节按钮失灵修复方法
  19. python的self使用
  20. 拒绝无用功,封装一个通用的 PopupWindow

热门文章

  1. mysql课设的心得体会_关于数据库课设的感想
  2. html与css游戏开发工具,html/css/js开发者必备的10款最佳工具
  3. 升级华为笔记本U盘安装盘
  4. RedisDesktopManager源码编译windows版(基于2022.1版本)
  5. Transform 被废弃,ASM 如何适配?
  6. java数组从小到大_JAVA中给定一个数组,怎么把它里的数从小到大排列输出?
  7. VESTA的扩胞功能——超晶胞的建立
  8. N4中Obix服务端
  9. AI词典笔赛跑下,科大讯飞的技术流超车
  10. Rust/WinRT更名,全面支持Windows API