SpringBoot封装返回结果
在前后端分离的项目中,统一封装一个返回结果便于接口的管理 和 前端处理接受的数据。
一、状态码
public interface Constants {
String CODE_200 = "200"; // 成功
String CODE_400 = "400"; // 参数错误
String CODE_500 = "500"; // 系统错误
String CODE_401 = "401"; // 权限不足
}
因为interface里面的属性都是 Public static final 的,所以可以用来做一个常量类。
也可以用枚举。
二、结果集
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Result {
private String code;
private String msg;
private Object data;
public static Result succeed() {
return new Result(Constants.CODE_200, "", null);
}
public static Result succeed(Object data) {
return new Result(Constants.CODE_200, "", data);
}
public static Result error(String code, String msg) {
return new Result(code, msg, null);
}
}
封装一个结果集让前端处理更轻松,管理接口更便利。
例:
后端接口:
@ApiOperation("该方法用于统计计数")
@GetMapping("/count")
public Result countDevice() {
Result result;
try {
Integer cnt = deviceService.selectTotalByName("");
result = Result.succeed(cnt);
} catch (Exception e) {
result = Result.error(Constants.CODE_500, e.toString());
}
return result;
}
可以在request.js中的request.interceptors.response.use中加上这一段,用于统一处理错误
if (res.code === "400" || res.code === "401" || res.code === "500") {
ElementUI.Message({
message: res.msg,
type: "error"
})
}