SpringBoot统一返回result结果集


前言

在使用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;

    }

}

三、效果展示

成功的无参展示
在这里插入图片描述

成功的有参展示在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_52526235/article/details/119317972