为什么要统一返回结果的格式?
目前我们做的项目大体都会是前后端分离的。为了使数据使用者(包括但不限于前端工程师)能够更好地处理返回结果,不至于为了处理各式各样的返回数据格式而抓狂,所以我们需要定义一个统一的标准的返回格式。
标准的返回格式需要包含哪几部分?
一个标准的返回格式至少要包含3部分:
status状态值:本次接口调用返回结果的状态码
message消息:本次接口调用的结果描述
data数据:本次接口调用返回的数据
当然也可以按需加入其它扩展值。
返回结果状态码枚举类
@Getterpublic enum ResultCode { SUCCESS("200", "成功"), INTERNAL_ERROR("500", "服务器内部异常"); private final String code; private final String msg; ResultCode(String code, String msg) { this.code = code; this.msg = msg; }}
统一返回对象
@Datapublic class Result<T> implements Serializable { /** * 状态码 */ private String code; /** * 返回结果 */ private T data; /** * 返回消息 */ private String msg; public static <T> Result<T> success() { Result<T> result = new Result<>(); result.setCode(ResultCode.SUCCESS.getCode()); return result; } public static <T> Result<T> success(T data) { Result<T> result = new Result<>(); result.setData(data); result.setCode(ResultCode.SUCCESS.getCode()); return result; } public static <T> Result<T> fail() { Result<T> result = new Result<>(); result.setCode(ResultCode.INTERNAL_ERROR.getCode()); result.setMsg(ResultCode.INTERNAL_ERROR.getMsg()); return result; } public static <T> Result<T> fail(ResultCode resultCode) { Result<T> result = new Result<>(); result.setCode(resultCode.getCode()); result.setMsg(resultCode.getMsg()); return result; }}原文:https://juejin.cn/post/7096772633567428645