栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java后端返回给前端的统一结果集

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java后端返回给前端的统一结果集

返回给前端的结果集 1.为什么要统一结果集?

​ Java后端开发项目时,需要给前端传一些数据,可以直接将一个List或者Map返回给前端,但是这样会显得很乱,并且有时候前端需要的不仅仅只是数据,可能还有一些错误码、错误信息等,这时就需要一种规范的数据格式传到前端。

2.Result数据类型

​ 可以创建一种具有信息码code、信息msg和数据的类型Result,用来返回给前端数据:

public class Result {

//返回信息码
private String code;
//返回信息
private String msg;
//返回数据
T data;

public Result(){}

public Result(T data){
    this.data=data;
}


//成功,只返回成功码和信息
public Result success(){
    Result result=new Result<>();
    result.setCode(ResultCode.SUCCESS.code);
    result.setMsg(ResultCode.SUCCESS.msg);
    return result;
}

//成功,返回成功码、信息和数据
public Result success(T data){
    Result result=new Result();
    result.setCode(ResultCode.SUCCESS.code);
    result.setMsg(ResultCode.SUCCESS.msg);
    result.setData(data);
    return result;
}

//失败,返回自己定义的信息码和信息
public Result error(){
    Result result=new Result<>();
    result.setCode(ResultCode.ERROR.code);
    result.setMsg(ResultCode.ERROR.code);
    return result;
}

//失败,返回controller层传过来信息码和信息
public Result error(String code,String msg){
    Result result=new Result<>();
    result.setCode(code);
    result.setMsg(msg);
    return result;
}


public void setCode(String code){
    this.code=code;
}

public void setMsg(String msg){
    this.msg=msg;
}

public void setData(T data){
    this.data=data;
}

@Override
public String toString() {
    return "Result{" +
            "code='" + code + ''' +
            ", msg='" + msg + ''' +
            ", data=" + data +
            '}';
}
}
3.ResultCode枚举

​ 在Result类型中需要有信息码code和信息msg,那么可以使用枚举将可能会发生的情况信息写入其中:

public enum ResultCode {
    SUCCESS("0", "成功"),
    ERROR("-1", "系统异常"),
    PARAM_ERROR("1001", "参数异常"),
    USER_EXIST_ERROR("2001", "用户已存在"),
    USER_ACCOUNT_ERROR("2002", "账号或密码错误"),
    USER_NOT_EXIST_ERROR("2003", "未找到用户"),
    ORDER_PAY_ERROR("3001", "库存不足,下单失败"),
    PARAM_LOST_ERROR("2004", "参数缺失"),
    PARAM_PASSWORD_ERROR("2005", "原密码输入错误"),
    ;

    public String code;
    public String msg;

    ResultCode(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/345018.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号