最近做的几个项目都是前后端分离。所以返回结果集基本都会由一个结果集包装一下,返回给前台。在做一个项目时候,尤其是前后台分离的项目,一个统一标准的结果集更利于和前天开发人员的交流。当然前后天不分离的醒目也可以使用一个统一标准的结果集,有利于项目的健壮性。
下面是代码。
------------------------------------------------------------------------------------------
/**
* 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为需要返回的数据
}