项目中自定义统一返回结果

我们在项目当中,每个人的编码风格不同,可能会返回给前端不同格式的数据,有的传字符串,有的返回List/Map。返回的状态码也不尽相同,有的返回true,有的 200 。因此,在项目中我们就需要自定义一套模板,统一定义返回的数据格式和状态码。

1.先建立一个统一的状态码(可自定义状态码,也可用Enum实现)

//状态码
public interface ResultCode {
    int OK = 20000;//成功
    int ERROR = 20001;//失败

}

2.定义一个统一的返回结果类。
我下面也设置了一些方法,可通过链式编程,自定义修改状态码、返回信息和数据类型。

import lombok.Data;
import java.util.HashMap;
import java.util.Map;
//定义结果
@Data
public class R {

    private Boolean success;

    private Integer code;

    private String message;

    private Map<String,Object> data = new HashMap<>();

    //构造方法私有化
    private R() {}

    //成功的方法
    public static R ok() {
        R r = new R();
        r.setSuccess(true);
        r.setCode(ResultCode.OK);
        r.setMessage("成功");
        return r;
    }

    //失败的方法
    public static R error(){
        R r = new R();
        r.setSuccess(false);
        r.setCode(ResultCode.ERROR);
        r.setMessage("失败");
        return r;
    }

    //链式编程  R.ok().data(..).code(..)
    public R message(String message){
        this.setMessage(message);
        return this;
    }

    public R code(Integer code){
        this.setCode(code);
        return this;
    }

    public R data(String key, Object value){
        this.data.put(key, value);
        return this;
    }

    public R data(Map<String, Object> map){
        this.setData(map);
        return this;
    }
}

3.如何使用
以返回数据为例子,将List 类型的数据放入R中统一返回。

@GetMapping("/getAllTeacher")
    public R getAllTeacher(){
        List<EduTeacher> list = eduTeacherService.list(null);
        return R.ok().data("items",list);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值