前言
在使用SpringBoot项目多人开发时,返回给前端的数据类型如果不统一的话,会带来很多麻烦。这时,我们就应该规定一下约束,比如说统一返回的result结果集
一、ResultCodeEnum枚举类
在ResultCodeEnum枚举类中,我们可以罗列自己需要返回的信息,便于前端使用。
import lombok.Getter;
//导入了Lombok的依赖
@Getter
public enum ResultCodeEnum {
SUCCESS(true, 20000, "成功"),
UNKNOWN_REASON(false, 20001, "未知错误"),
BAD_SQL_GRAMMAR(false, 21001, "sql语法错误"),
JSON_PARSE_ERROR(false, 21002, "json解析异常"),
PARAM_ERROR(false, 21003, "参数不正确"),
FILE_UPLOAD_ERROR(false, 21004, "文件上传错误"),
EXCEL_DATA_IMPORT_ERROR(false, 21005, "Excel数据导入错误");
private boolean success;
private Integer code;
private String message;
private Object data;
private ResultCodeEnum(Boolean success, Integer code, String message) {
this.success = success;
this.code = code;
this.message = message;
}
}
我们可以规定,只有success才可以进行传参
二、Result
代码如下:
package com.three.utils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
//设置统一资源返回结果集
@Data
@ApiModel(value = "全局统一返回结果")
public class Result {
@ApiModelProperty(value = "返回码")
private Integer code;
@ApiModelProperty(value = "返回消息")
private String message;
@ApiModelProperty(value = "是否成功")
private Boolean success;
@ApiModelProperty(value = "返回数据")
private Object data;
private Result() {
}
//返回成功的结果集
public static Result success(){
Result r = new Result();
r.setSuccess(ResultCodeEnum.SUCCESS.isSuccess());
r.setCode(ResultCodeEnum.SUCCESS.getCode());
r.setMessage(ResultCodeEnum.SUCCESS.getMessage());
return r;
}
//返回带参的成功结果集
public static Result success(Object data) {
Result r = new Result();
r.setSuccess(ResultCodeEnum.SUCCESS.isSuccess());
r.setCode(ResultCodeEnum.SUCCESS.getCode());
r.setMessage(ResultCodeEnum.SUCCESS.getMessage());
r.setData(data);
return r;
}
//返回失败的结果集
public static Result error(){
Result r = new Result();
r.setSuccess(ResultCodeEnum.UNKNOWN_REASON.isSuccess());
r.setCode(ResultCodeEnum.UNKNOWN_REASON.getCode());
r.setMessage(ResultCodeEnum.UNKNOWN_REASON.getMessage());
return r;
}
/**
*
* @param resultCodeEnum
* @return
*/
public static Result setResult(ResultCodeEnum resultCodeEnum){
Result r = new Result();
r.setSuccess(resultCodeEnum.isSuccess());
r.setCode(resultCodeEnum.getCode());
r.setMessage(resultCodeEnum.getMessage());
return r;
}
public Result success(Boolean success){
this.setSuccess(success);
return this;
}
public Result message(String message){
this.setMessage(message);
return this;
}
public Result code(Integer code){
this.setCode(code);
return this;
}
public Result data(Object data) {
this.data = data;
return this;
}
}
三、效果展示
成功的无参展示
成功的有参展示