在前后端分离的项目中,统一封装一个返回结果便于接口的管理 和 前端处理接受的数据。
一、状态码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" }) }