项目中我们会将响应封装成json返回,一般我们会将所有接口的数据格式统一, 使前端对数据的操作更一致、轻松。 一般情况下,统一返回数据格式没有固定的格式,只要能描述清楚返回的数据状态以及要返回的具体数 据就可以。但是一般会包含状态码、返回消息、数据这几部分内容。例如
{
"success": true,
"code": 20000,
"message": "成功",
"data": {
"items": [
{
"id": "1",
"name": "刘德华",
"intro": "毕业于师范大学数学系,热爱教育事业,执教数学思维6年有余"
}
]
}
}
定义统一结果返回类
/**
* 统一返回结果
*/
@Data
public class Result<T> implements Serializable {
private Integer code;
private String msg;
private T data;
public Result() {
this.code = ResultEnum.SUCCESS.getCode();
this.msg = ResultEnum.SUCCESS.getMsg();
}
public Result(String msg) {
this.code = ResultEnum.SUCCESS.getCode();
this.msg = msg;
}
public Result(T data) {
this.code = ResultEnum.SUCCESS.getCode();
this.msg = ResultEnum.SUCCESS.getMsg();
this.data = data;
}
public Result(String msg, T data) {
this.code = ResultEnum.SUCCESS.getCode();
this.msg = msg;
this.data = data;
}
public Result(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
public Result(ResultEnum resultEnum) {
this.code = resultEnum.getCode();
this.msg = resultEnum.getMsg();
}
public Result(Integer code, String msg, T data) {
this.code = code;
this.msg = msg;
this.data = data;
}
}
我们可以定义一些枚举来统一一下返回结果
/**
* 返回结果枚举
*/
@Getter
public enum ResultEnum {
/**
* 返回结果枚举,每个枚举代表着一个返回状态
*/
SUCCESS(20000, "操作成功!"),
ERROR(40000, "操作失败!"),
DATA_NOT_FOUND(40001, "查询失败!"),
PARAMS_NULL(40002, "参数不能为空!"),
PARAMS_ERROR(40005, "参数不合法!"),
NOT_LOGIN(40003, "当前账号未登录!")
;
private Integer code;
private String msg;
ResultEnum(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
}