这是一个枚举类:
**
* @version 1.0
* @Author Mr Liang
* @Date 2023/3/11 15:14
* @注释
*/
public enum Code {
//全局状态码
SUCCESS(200,"查询成功!"),
INVALID_PARAM(10003,"非法参数!");
FAIL(400,"查询失败!"),
UNAUTHENTICATED(10001,"此操作需要登陆系统!"),
UNAUTHORISE(10002,"权限不足,无权操作!"),
SERVER_ERROR(99999,"抱歉,系统繁忙,请稍后重试!");
//操作代码
int code;
//提示信息
String message;
/**
* 构造方法
* @param code
* @param message
*/
Code(int code, String message) {
this.code = code;
this.message = message;
}
// 用于获取code和对应的message
public int code() {
return code;
}
public String message() {
return message;
}
/**
* 根据
* @param name
* @return
*/
public static String getMessage(String name) {
for (Code item : Code.values()) {
if (item.name().equals(name)) {
return item.message;
}
}
return name;
}
public static Integer getCode(String name) {
for (Code item : Code.values()) {
if (item.name().equals(name)) {
return item.code;
}
}
return null;
}
@Override
public String toString() {
return this.name();
}
//校验重复的code值
public static void main(String[] args) {
Code[] ApiResultCodes = Code.values();
List<Integer> codeList = new ArrayList();
for (Code ApiResultCode : ApiResultCodes) {
if (codeList.contains(ApiResultCode.code)) {
System.out.println(ApiResultCode.code);
} else {
codeList.add(ApiResultCode.code());
}
}
}
}
统一接口的响应格式:
/**
* @version 1.0
* @Author Mr Liang
* @Date 2023/3/11 15:11
* @注释
*/
public class ResponseResult<T> implements Serializable {
/**响应码*/
private Integer code;
/**响应信息*/
private String message;
/**具体数据*/
private T data;
public ResponseResult() {}
public ResponseResult(Code resultCode) {
this.code = resultCode.code();
this.message = resultCode.message();
}
public ResponseResult(Code resultCode, T data) {
this.code = resultCode.code();
this.message = resultCode.message();
this.data = data;
}
public static ResponseResult success(Code success, Object all) {
ResponseResult result = new ResponseResult(Code.SUCCESS,all);
return result;
}
public static ResponseResult success(Object data) {
ResponseResult result = new ResponseResult(Code.SUCCESS,data);
return result;
}
public static ResponseResult failure(Code resultCode) {
ResponseResult result = new ResponseResult(resultCode);
return result;
}
public static ResponseResult failure(Code resultCode, Object data) {
ResponseResult result = new ResponseResult(resultCode,data);
result.setData(data);
return result;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
controller类:
/**
* @version 1.0
* @Author Mr Liang
* @Date 2023/3/11 14:22
* @注释
*/
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/test")
public ResponseResult findAll(){
List<User> all = userService.findAll();
return ResponseResult.success(Code.SUCCESS,all);
}
}
postman查看响应的具体格式: