springboot配置统一返回结果集

一、使用统一返回结果集意义

使用统一返回结果集的意义在于规范接口返回数据的格式,方便前后端交互和协作开发。通过约定一个统一的返回格式,可以大大减少前后端实现上的沟通成本,并且增强了代码的可维护性和可读性。

二、ApiResponse代码解读

定义一个泛型类 ApiResponse<T>,表示API接口返回的响应数据。

@Data
public class ApiResponse<T> {

使用 Lombok 的 @Data 注解自动生成 Getter、Setter 和其他常见方法。T 表示泛型。

    private final int code;
    private final String message;
    private final T data;

声明三个私有成员变量 codemessagedata,分别表示响应码、消息和数据。

    public ApiResponse(ResponseCode responseCode, T data) {
        this.code = responseCode.getCode();
        this.message = responseCode.getMessage();
        this.data = data;
    }

定义构造方法 ApiResponse,接收两个参数 responseCodedata,在构造对象时将 responseCode 中的响应码和消息赋值给 codemessage,将传入的 data 赋值给 this.data

    public static <T> ApiResponse<T> success(T data) {
        return new ApiResponse<T>(ResponseCode.SUCCESS, data);
    }

定义静态方法 success,接收一个 data 参数,该方法返回 ApiResponse<T> 类型,其中调用构造方法 ApiResponse,将响应码为 SUCCESS 和传入的 data 作为参数创建对象。

    public static <T> ApiResponse<T> failed(ResponseCode responseCode) {
        return new ApiResponse<T>(responseCode, null); // data为null
    }

定义静态方法 failed,接收一个 responseCode 参数,该方法返回 ApiResponse<T> 类型,其中调用构造方法 ApiResponse,将传入的响应码和 null 作为数据参数创建对象。

三、ResponseCode枚举类的解读

定义一个 Java 枚举类型 ResponseCode,它包含 5 个常量:

  • SUCCESS:表示请求成功,对应的状态码为 200。
  • INVALID_INPUT:表示输入无效,对应的状态码为 400。
  • UNAUTHORIZED:表示未经授权,对应的状态码为 401。
  • NOT_FOUND:表示未找到,对应的状态码为 404。
  • INTERNAL_SERVER_ERROR:表示服务器内部错误,对应的状态码为 500。

每个枚举常量都有一个 int 类型的 code 和一个 String 类型的 message 属性,分别用于存储状态码和消息文本。在枚举类中,声明了一个构造函数来初始化枚举常量的属性,并提供了访问这些属性的方法 getCode()getMessage()

四、整体代码

@Data
public class ApiResponse<T> {
    private final int code;
    private final String message;
    private final T data;

    // 省略构造方法和Getter/Setter

    public ApiResponse(ResponseCode responseCode, T data) {
        this.code = responseCode.getCode();
        this.message = responseCode.getMessage();
        this.data = data;
    }
    public static <T> ApiResponse<T> success(T data) {
        return new ApiResponse<T>(ResponseCode.SUCCESS, data);
    }

    public static <T> ApiResponse<T> failed(ResponseCode responseCode) {
        return new ApiResponse<T>(responseCode, null); // data为null
    }

}
public enum ResponseCode {
    SUCCESS(200, "请求成功"),
    INVALID_INPUT(400, "无效的输入"),
    UNAUTHORIZED(401, "未经授权"),
    NOT_FOUND(404, "未找到"),
    INTERNAL_SERVER_ERROR(500, "服务器内部错误");

    private final int code;
    private final String message;

    ResponseCode(int code, String message) {
        this.code = code;
        this.message = message;
    }

    public int getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }
}

附返回成功样式:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吉屋安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值