# 统一封装返回接口
# ApiResponse
package com.xxx.utils;
import com.xxx.enums.ResponseCodeEnum;
import lombok.Data;
import java.util.ArrayList;
@Data
public class ApiResponse<T> {
/** 响应状态 **/
private Integer code;
/** 响应消息 **/
private String message;
/** 响应数据 **/
private T data;
/** 无参构造 **/
protected ApiResponse(){}
/**
* 带参构造
* @param code 状态码
* @param message 提示信息
* @param data 响应数据
*/
public ApiResponse(Integer code, String message, T data) {
this.code = code;
this.message = message;
this.data = data;
}
/**
* 成功返回结果
* @return ApiResponse
*/
public static ApiResponse<Object> success() {
return new ApiResponse<>(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMessage(), new ArrayList<>());
}
/**
* 成功返回结果
* @param code
* @return ApiResponse
*/
public static ApiResponse<Object> success(Integer code) {
return new ApiResponse<>(code, ResponseCodeEnum.SUCCESS.getMessage(), new ArrayList<>());
}
/**
* 成功返回结果
* @param message
* @return
*/
public static ApiResponse<Object> success(String message) {
return new ApiResponse<>(ResponseCodeEnum.SUCCESS.getCode(), message, new ArrayList<>());
}
/**
* 成功返回结果
* @param data
* @return ApiResponse
*/
public static <T> ApiResponse<T> success(T data) {
return new ApiResponse<>(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMessage(), data);
}
/**
* 成功返回结果
* @param code
* @param message
* @param data
* @return ApiResponse
*/
public static <T> ApiResponse<T> success(Integer code, String message, T data) {
return new ApiResponse<>(code, message, data);
}
/**
* 成功返回结果
* @param code
* @param message
* @return ApiResponse
*/
public static ApiResponse<Object> success(Integer code, String message) {
return new ApiResponse<>(code, message, new ArrayList<>());
}
/**
* 返回错误
* @param code
* @return
*/
public static ApiResponse<Object> failed(Integer code){
return new ApiResponse<>(code, ResponseCodeEnum.FAILED.getMessage(), new ArrayList<>());
}
/**
* 返回错误
* @param message
* @return
*/
public static ApiResponse<Object> failed(String message){
return new ApiResponse<>(ResponseCodeEnum.FAILED.getCode(), message, new ArrayList<>());
}
/**
* 返回错误
* @param data
* @param <T>
* @return
*/
public static <T> ApiResponse<T> failed(T data){
return new ApiResponse<T>(ResponseCodeEnum.FAILED.getCode(), ResponseCodeEnum.FAILED.getMessage(), data);
}
/**
* 返回错误
* @param code
* @param message
* @return
*/
public static ApiResponse<Object> failed(Integer code, String message){
return new ApiResponse<>(code, message, new ArrayList<>());
}
/**
* 返回错误
* @param code
* @param message
* @param data
* @param <T>
* @return
*/
public static <T> ApiResponse<T> failed(Integer code, String message, T data) {
return new ApiResponse<>(code, message, data);
}
}
# 返回状态枚举
package com.xxx.enums;
public enum ResponseCodeEnum {
SUCCESS(200, "操作成功"),
FAILED(500, "操作失败"),
REQUEST_METHOD_ERROR(405, "请求方法错误"),
TOKEN_INVALID(401, "token参数无效"),
NO_PERMISSION(403, "无相关权限"),
REQUEST_404_ERROR(404, "请求接口不存在");
/**构造方法 **/
private final Integer code;
private final String message;
public Integer getCode() {
return code;
}
public String getMessage() {
return message;
}
ResponseCodeEnum(int code, String message) {
this.code = code;
this.message = message;
}
}
# 案列
@PostMapping("/out")
public ApiResponse<Object> out(HttpServletRequest request)
{
String token = request.getHeader("token");
adminService.out(token);
return ApiResponse.success("操作成功");
}
@PostMapping("/auth")
public ApiResponse<PassportTokenVo> auth(@Validated @RequestBody PassportAuthDto passportAuthDto)
{
PassportTokenVo passportTokenVo = adminService.passport(passportAuthDto);
return ApiResponse.success(ResponseCodeEnum.SUCCESS.getCode(), "登录成功", passportTokenVo);
}