响应参数类 R<T>

package com.upc.practice2023.base.responseparam;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

@Data
@Accessors(chain = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
@AllArgsConstructor
@NoArgsConstructor
public class R<T> {
    private Integer code;
    private String message;
    private T data;
    public static <T> R<T> commonReturn(Integer code, String message, T data) {
        return new R<>(code, message, data);
    }

    public static <T> R<T> ok(T data) {
        return new R<>(200, "请求成功", data);
    }

    public static <T> R<T> ok() {
        return R.ok(null);
    }

    public static <T> R<T> fail() {
        return R.fail("请求错误");
    }

    public static <T> R<T> fail(String message) {
        return new R<>(400, message, null);
    }

    public static <T> R<T> unauthorized() {
        return new R<>(401, "请登陆后重试", null);
    }

    public static <T> R<PageBaseReturnParam<T>> page(PageBaseReturnParam<T> param) {
        return R.ok(param);
    }

}

这段代码是一个通用的响应参数类 R<T>,用于封装接口返回的数据。

代码解释如下:

  • @Data 注解由 Lombok 提供,用于自动生成 getter、setter、toString、equals 等方法。
  • @Accessors(chain = true) 注解也是 Lombok 提供的,用于生成链式调用的 setter 方法。
  • @JsonInclude(JsonInclude.Include.NON_NULL) 注解表示在序列化时忽略值为 null 的字段。
  • @AllArgsConstructor 注解由 Lombok 提供,用于生成一个包含所有参数的构造方法。
  • @NoArgsConstructor 注解由 Lombok 提供,用于生成一个无参的构造方法。

类中的字段包括:

  • code:响应状态码
  • message:响应消息
  • data:响应数据

该类还定义了一些静态方法,用于创建不同类型的响应参数对象:

  • commonReturn:根据指定的状态码、消息和数据创建响应参数对象。
  • ok:创建一个成功的响应参数对象,并设置默认的成功状态码和消息。
  • fail:创建一个失败的响应参数对象,并设置默认的失败状态码和消息。
  • unauthorized:创建一个未授权的响应参数对象,并设置默认的未授权状态码和消息。
  • page:创建一个分页响应参数对象,其中的数据为 PageBaseReturnParam<T> 类型。

使用该类时,可以通过静态方法来创建不同类型的响应参数对象,然后将其作为接口的返回值进行返回。

// 创建一个成功的响应参数对象,设置数据为 user 对象
R<User> response = R.ok(user);

// 创建一个失败的响应参数对象,自定义错误消息
R<?> response = R.fail("请求错误");

// 创建一个分页响应参数对象,设置分页数据
PageBaseReturnParam<User> pageData = new PageBaseReturnParam<>(users, total);
R<PageBaseReturnParam<User>> response = R.page(pageData);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值