springBoot统一响应类型2.0版本
前言:
通过实践而发现真理,又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识,又从理性认识而能动地指导革命实践,改造主观世界和客观世界。实践、认识、再实践、再认识,这种形式,循环往复以至无穷,而实践和认识之每一循环的内容,都比较地进到了高一级的程度。
简单回顾我们的统一响应
@Data //添加get&set方法 public class apiResult<T> { private int code; private String message; private T data; //响应成功 public apiResult(int code, String message, T data) { this.code = code; this.message = message; this.data = data; } //响应失败 public apiResult(int code,String message){ this.code = code; this.message = message; } }
不够优雅,不够简单,不够大方,但是能用
体验下来还不错
正片:
本期目标也就出来了,让它变得优雅
接口响应可以分为两大类,
第一类:成功
第二类:失败
我们创建一个加工类,专门用来构建成功和失败的示例
/** * 统一响应类实例化工具 */ public class apiResultYOUYA { //http成功状态码 private static final int OK = HttpStatus.OK.value(); //隔着报错状态码 private static int NO = HttpStatus.INTERNAL_SERVER_ERROR.value(); //基本成功响应 public static <T>apiResult<T> success(T data){ return new apiResult<>(OK,"操作成功",data); } //自定义信息成功响应 public static <T>apiResult<T> success(String message,T data){ return new apiResult<>(OK,message,data); } //基础失败响应 public static <T>apiResult<T> error(){ return new apiResult<>(NO,"系统错误,请联系管理员",null); } //自定义信息失败响应 public static <T>apiResult<T> error(String message){ return new apiResult<>(NO,message,null); } }
运用
@RestController public class test { @Resource UserPageServer userPageServer; /** * 自定义响应信息的运用 * * @param id * @return */ @GetMapping("/id") public apiResult<UserPageEntity> id(int id){ UserPageEntity userPage = userPageServer.UserByID(id); if (userPage == null) return apiResultYOUYA.error("老登,没有这一号人,是不是记错了"); return apiResultYOUYA.success("成功查询,老登",userPage); } }
成功
失败
报错是不适合的
为什么会不一样呢?
我们并没用覆盖掉统一的异常报错,这只是简单的响应返回,我们响应统一覆盖掉异常报错才能做到解决