最近做的几个项目都是前后端分离。所以返回结果集基本都会由一个结果集包装一下,返回给前台。在做一个项目时候,尤其是前后台分离的项目,一个统一标准的结果集更利于和前天开发人员的交流。当然前后天不分离的醒目也可以使用一个统一标准的结果集,有利于项目的健壮性。
下面是代码。
------------------------------------------------------------------------------------------
/**
* http请求返回最外层对象
* @version 1.0
*/
public class Result<T> {
/**
* 返回码
*/
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;
}
}
--------------------------------------------------------------------------------------------------
/** * 返回结果的数据结构封装 * @version 1.0 */ public class ResultUtil { /** * 返回成功结果及数据 * @param resultEnum * @param object * @return */ public static Result<Object> success(ResultEnum resultEnum, Object object){ Result<Object> result = new Result<>(); result.setCode(resultEnum.getCode()); result.setMsg(resultEnum.getMsg()); result.setData(object); return result; } /** * 返回成功结果 * @param resultEnum * @return */ public static Result<Object> success(ResultEnum resultEnum){ return success(resultEnum, null); } /** * 返回自定义成功结果 * @param code * @param msg * @return */ public static Result<Object> success(int code, String msg,Object object){ Result<Object> result = new Result<>(); result.setCode(code); result.setMsg(msg); result.setData(object); return result; } /** * 返回自定义异常结果 * @param code * @param msg * @return */ public static Result<Object> error(int code, String msg){ Result<Object> result = new Result<>(); result.setCode(code); result.setMsg(msg); return result; } /** * 返回失败结果 * @param resultEnum * @return */ public static Result<Object> error(ResultEnum resultEnum){ Result<Object> result = new Result<>(); result.setCode(resultEnum.getCode()); result.setMsg(resultEnum.getMsg()); return result; } }
----------------------------------------------------------------------------------------------------
/** * 结果返回枚举 */ public enum ResultEnum { // 错误码 错误信息 UNKNOW_ERROR(-1, "系统错误"), FAIL(0, "失败"), SUCCESS(200, "成功"), private int code; private String msg; ResultEnum(int code, String msg) { this.code = code; this.msg = msg; } public int getCode() { return code; } public String getMsg() { return msg; } }
--------------------------------------------------------------------
运用,我大概举一个小例子
@GetMapping("/xxxx") public Result<Object> xxxx() { return ResultUtil.error(ResultEnum.FAIL);//返回失败的结果 return ResultUtil.success(ResultEnum.SUCCESS, data);//返回成功的结果,data为需要返回的数据 }