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、总结
至此,我们就可以在控制器中愉快的使用了。