代码模板:SpringBoot后端统一返回类

我的笔记会更新至我的hexo博客,欢迎访问
BDsnake’s Blog

Java(SpringBoot)后端统一结果返回

后端开发过程中,向前端返回的格式应统一确定,所以应当有一个类统一管理返回结果Result(这里用的类是ResultUtil)

下面是构建

首先创建一个Result类

@Data
@AllArgsConstructor
public class Result {
    private Integer code;
    private String message;
    private Object data;

    public Result() {
        super();
    }


}

创建一个常用枚举类,存储自定义的code与message

public enum ResultEnum {
    //这里是可以自己定义的
    UNKNOWN_ERROR(-1,"未知错误"),
    SUCCESS(200,"成功"),
    USER_NOT_EXIST(204,"用户不存在"),
    USER_IS_EXISTS(203,"用户已存在"),
    DATA_IS_NULL(205,"数据为空"),
    ;
    private Integer code;
    private String msg;

    ResultEnum(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public Integer getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}

返回类工具

public class ResultUtil {

    /**成功且带数据**/
    public static Result success(Object object){
        Result result = new Result();
        result.setCode(ResultEnum.SUCCESS.getCode());
        result.setMsg(ResultEnum.SUCCESS.getMsg());
        result.setData(object);
        return result;
    }
    /**成功但不带数据**/
    public static Result success(){

        return success(null);
    }
    /**失败**/
    public static Result error(ResultEnum resultEnum){
        Result result = new Result();
        result.setCode(resultEnum.getCode());
        result.setMsg(resultEnum.getMsg());
        return result;
    }
}
  • 这里的返回类工具提供了三种方法
  • 由于成功的情况应该是经常需要用的,而且返回的code和message基本也是固定的,所以直接写两个方法执行比较省心
  • 但是错误是有很多种的,所以就传入一个枚举类,直接从枚举类中获取code和message

以下为三种方法对应的使用演示

    @Test
    void resTest(){
        //懒得写controller了直接输出吧
        System.out.println(ResultUtil.success(new String("我是String类型的data")));
        System.out.println(ResultUtil.success());
        System.out.println(ResultUtil.error(ResultEnum.USER_NOT_EXIST));
    }

在这里插入图片描述

感觉吧可能有人觉得一会直接调方法一会又得传个枚举类会比较乱,其实以上面这个思路为底子也可以改出自己用着顺手的,看你自己了

来一段我自己使用的例子

    @PostMapping("/del")
    public Result delUser(String userId){
        if (StrUtil.isBlank(userId)) {
            return ResultUtil.error(ResultEnum.DATA_IS_NULL);
        }
        if (articleService.count(Wrappers.<Article>lambdaQuery().eq(Article::getUserId, userId)) > 0) {
            return ResultUtil.error(ResultEnum.SHOULD_DEL_ARTICLE_FIRST);
        }

        if (userService.removeById(userId)) {
            return ResultUtil.success();
        }

        return ResultUtil.error(ResultEnum.UNKNOWN_ERROR);
    }
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值