在java中,我们编写接口的时候,一般都会有一个公共的返回实体,然后再controller的时候,直接return对应的实体即可。这里我们也提供一个公共的实体类工具。这里的工具分为两部分,一部分是枚举类,完整代码如下:
package com.demo.model; import lombok.AllArgsConstructor; import lombok.Getter; /** * 错误编码 * */ @Getter @AllArgsConstructor public enum ErrorCode { UNAUTHORIZED(401, "还未授权,不能访问"), FORBIDDEN(403, "没有权限,禁止访问"), INTERNAL_SERVER_ERROR(500, "服务器异常,请稍后再试"), ACCOUNT_PASSWORD_ERROR(1001, "账号或密码错误"); private final int code; private final String msg; }
另外一部分是公共的实体返回类:
package com.demo.model; import lombok.Data; /** * 响应数据 * * @author 阿沐 babamu@126.com */ @Data public class Result<T> { private int code = 0; //消息内容 private String msg = "success"; //响应数据 private T data; public static <T> Result<T> ok() { return ok(null); } public static <T> Result<T> ok(T data) { Result<T> result = new Result<>(); result.setData(data); return result; } public static <T> Result<T> error() { return error(ErrorCode.INTERNAL_SERVER_ERROR); } public static <T> Result<T> error(String msg) { return error(ErrorCode.INTERNAL_SERVER_ERROR.getCode(), msg); } public static <T> Result<T> error(ErrorCode errorCode) { return error(errorCode.getCode(), errorCode.getMsg()); } public static <T> Result<T> error(int code, String msg) { Result<T> result = new Result<>(); result.setCode(code); result.setMsg(msg); return result; } }
在使用的时候,controller可以这么写:
public Result<PageResult<DataDatabaseVO>> page(@Valid DataDatabaseQuery query) { PageResult<DataDatabaseVO> page = dataDatabaseService.page(query); return Result.ok(page); }
还没有评论,来说两句吧...