1.
//统一返回数据格式 public class AppResult{ private int code; private String msg; private T data;// 数据 public int getCode() { return code; } public void setCode(int code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public T getData() { return data; } public void setData(T data) { this.data = data; } }
2.
//状态码 public enum ResultCode { /* 成功状态码 */ SUCCESS(0, "成功"), /* 参数错误:10001-19999 */ PARAM_IS_INVALID(10001, "参数无效"), PARAM_IS_BLANK(10002, "参数为空"), PARAM_TYPE_BIND_ERROR(10003, "参数类型错误"), PARAM_NOT_COMPLETE(10004, "参数缺失"), /* 用户错误:20001-29999*/ USER_NOT_LOGGED_IN(20001, "用户未登录"), USER_LOGIN_ERROR(20002, "账号不存在或密码错误"), USER_ACCOUNT_FORBIDDEN(20003, "账号已被禁用"), USER_NOT_EXIST(20004, "用户不存在"), USER_HAS_EXISTED(20005, "用户已存在"), /* 业务错误:30001-39999 */ SPECIFIED_QUESTIONED_USER_NOT_EXIST(30001, "某业务出现问题"), /* 系统错误:40001-49999 */ SYSTEM_INNER_ERROR(40001, "系统繁忙,请稍后重试"), /* 数据错误:50001-599999 */ RESULE_DATA_NONE(50001, "数据未找到"), DATA_IS_WRONG(50002, "数据有误"), DATA_ALREADY_EXISTED(50003, "数据已存在"), /* 接口错误:60001-69999 */ INTERFACE_INNER_INVOKE_ERROR(60001, "内部系统接口调用异常"), INTERFACE_OUTTER_INVOKE_ERROR(60002, "外部系统接口调用异常"), INTERFACE_FORBID_VISIT(60003, "该接口禁止访问"), INTERFACE_ADDRESS_INVALID(60004, "接口地址无效"), INTERFACE_REQUEST_TIMEOUT(60005, "接口请求超时"), INTERFACE_EXCEED_LOAD(60006, "接口负载过高"), /* 权限错误:70001-79999 */ PERMISSION_NO_ACCESS(70001, "无访问权限"); private Integer code; private String msg; ResultCode(Integer code, String msg) { this.code = code; this.msg = msg; } public Integer getCode() { return code; } public String getMsg() { return msg; } }
3.
public class AppResultBuilder { //成功,不返回具体数据 public staticAppResult successNoData(ResultCode code){ AppResult result = new AppResult (); result.setCode(code.getCode()); result.setMsg(code.getMsg()); return result; } //成功,返回数据 public static AppResult success(T t,ResultCode code){ AppResult result = new AppResult (); result.setCode(code.getCode()); result.setMsg(code.getMsg()); result.setData(t); return result; } //失败,返回失败信息 public static AppResult faile(ResultCode code){ AppResult result = new AppResult (); result.setCode(code.getCode()); result.setMsg(code.getMsg()); return result; } }
4.controller层:
@RestController public class controller { @GetMapping("/findAll") public AppResultceshi(){ return AppResultBuilder.successNoData(ResultCode.SUCCESS); } @GetMapping("/b") public AppResult b(){ return AppResultBuilder.success("成功,有数据返回",ResultCode.SUCCESS); } @GetMapping("/c") public AppResult c(){ return AppResultBuilder.faile(ResultCode.PARAM_IS_INVALID); } }