统一接口响应
定义状态接口
package com.smile.cms.utils.response;
public interface IErrorCode {
int getCode();
String getMessage();
}
定义枚举类型
package com.smile.cms.utils.response;
public enum ResponseCode implements IErrorCode{
SUCCESS(200,"成功"),
ERROR(400,"失败"),
UNAUTHORIZED(401,"身份验证失败"),
VALIDATE_FAILED(402,"参数校验异常"),
FORBIDDEN(403,"无权限访问"),
NOT_FOUND(404,"路由未找到"),
METHOD_NOT_ALLOWED (405,"请求方法不支持"),
HTTP_TOO_MANY_REQUESTS(429,"接口频率限制"),
HTTP_INTERNAL_SERVER_ERROR(500,"系统错误");
private int code;
private String message;
private ResponseCode(int code,String message)
{
this.code = code;
this.message = message;
}
@Override
public int getCode() {
return code;
}
@Override
public String getMessage() {
return message;
}
}
接口响应数据
package com.smile.cms.utils.response;
public class ApiResponse <T>{
private int code;
private String message;
private T data;
private ApiResponse() {}
public ApiResponse(T data,int code,String message)
{
this.data = data;
this.code = code;
this.message = message;
}
public long getCode() {
return code;
}
public void setCode(int 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;
}
public static <T> ApiResponse<T> success()
{
return new ApiResponse<T>(null,ResponseCode.SUCCESS.getCode(), ResponseCode.SUCCESS.getMessage());
}
public static <T> ApiResponse<T> success(String message)
{
return new ApiResponse<T>(null,ResponseCode.SUCCESS.getCode(), message);
}
public static <T> ApiResponse<T> success(String message,int code)
{
return new ApiResponse<T>(null,code, message);
}
public static <T> ApiResponse<T> success(String message,int code,T data)
{
return new ApiResponse<T>(data,code, message);
}
public static <T> ApiResponse<T> error()
{
return new ApiResponse<T>(null,ResponseCode.ERROR.getCode(), ResponseCode.SUCCESS.getMessage());
}
public static <T> ApiResponse<T> error(String message)
{
return new ApiResponse<T>(null,ResponseCode.ERROR.getCode(), message);
}
public static <T> ApiResponse<T> error(String message,int code)
{
return new ApiResponse<T>(null,code, message);
}
public static <T> ApiResponse<T> error(String message,int code,T data)
{
return new ApiResponse<T>(data,code, message);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现