SpringBoot项目统一返回格式

1、背景

目前很多项目都是前后端分离,前后端会事先约定好返回格式。今天我们就针对Spring Boot项目,封装统一的数据格式返回。微服务中,由于各业务团队之间的对接,各个团队之间需要统一返回格式,这样解析时不容易出现错误。因此,有必要统一返回格式。

2、步骤描述

2.1 创建一个接口枚举类
@AllArgsConstructor
@Getter
public enum REnum {
    SUCCESS(200, "success"),
    FAIL(500, "fail");

    private final Integer code;
    private final String desc;
}
2.2 定义统一返回结果集类
@Data
public class R<T> implements Serializable {

    private static final long serialVersionUID = 1L;

    // 返回状态码
    private Integer code;

    // 返回体
    private T data;

    // 返回信息
    private String msg;

    public static <T> R<T> ok() {
        return returnResult(REnum.SUCCESS.getCode(), null, REnum.SUCCESS.getDesc());
    }

    public static <T> R<T> ok(T data) {
        return returnResult(REnum.SUCCESS.getCode(), data, null);
    }

    public static <T> R<T> ok(T data, String msg) {
        return returnResult(REnum.SUCCESS.getCode(), data, msg);
    }

    public static <T> R<T> fail() {
        return returnResult(REnum.FAIL.getCode(), null, REnum.FAIL.getDesc());
    }

    public static <T> R<T> fail(T data) {
        return returnResult(REnum.FAIL.getCode(), data, null);
    }

    public static <T> R<T> fail(T data, String msg) {
        return returnResult(REnum.FAIL.getCode(), data, msg);
    }

    // 统一返回信息
    public static <T> R<T> returnResult(Integer code, T data, String msg) {
        final R<T> result = new R<>();
        result.setCode(code);
        result.setData(data);
        result.setMsg(msg);
        return result;
    }
}

3、总结

至此,我们就可以在控制器中愉快的使用了。

你可能感兴趣的:(Java,Spring,Boot,Spring,Cloud,spring,boot,java,spring)