java统一返回

本文介绍了在Java开发中如何设计并实现一个统一的API返回格式,包括code状态码、msg提示信息和data数据字段。通过提供的工具类Re,可以便捷地创建各种返回情况,如成功、失败、带有数据的返回等。示例代码展示了不同返回场景的JSON结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java统一返回

前言

在我们java平常的开发中,比较重要的一点就是对于接口的返回值的定义,因为基本大部分的api接口都需要一个统一的返回,这样调用方就比较好处理,逻辑也清晰,所以设计一个统一的返回就比较重要了

返回值的构成

我看了一些api也基本差不多,大致都有这么几种构成

code

code一般用来表示接口的调用情况,调用方可以根据code表判断这个接口的调用情况,
例如0 可以标识成功,1可以表示报错,2可以表示未登录,3可以表示没有权限…
自己定义规则就行

msg

msg表示提示信息
可以是成功的消息success 新增成功 删除成功
也可以是失败的原因,error 没有权限 参数错误等等

data

一些查询接口调用会有一个返回数据,用data来表示,工具类采用泛型

代码实现

  • 因为是工具方法,所有把所有的构造方法的私有化了,使用静态方法调用更方便
  • 使用lombok让代码更简洁@Data
  • 开启链式编程更方便@Accessors(chain = true)
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * 接口统一返回
 *
 * @author yanhuo
 * @since 2022/4/23
 */
@Data
@Accessors(chain = true)
public class Re<T> {

    /**
     * 返回状态码
     */
    private int code;
	
	/**
	 * 提示信息
	 */
    private String msg;
	
	/**
	 * 返回数据
	 */
    private T data;
	
    private Re() {
    }

    private Re(T data) {
        this.data = data;
    }

    private Re(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    private Re(int code, String msg, T data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }
	
	// 没有返回数据,Re.ok()
    public static Re ok() {
        return new Re(0, "sucess");
    }
	
	// 有返回数据,Re.ok(data)
    public static <T> Re<T> ok(T data) {
        return new Re<T>(0, sucess, data);
    }
	// 只有提示信息,Re.ok("新增/修改成功")
    public static Re ok(String msg) {
        return new Re(0, msg);
    }
	// Re.error()
    public static Re error() {
        return new Re(1, "error");
    }
	// Re.error("请重试")
    public static Re error(String msg) {
        return new Re(1, msg);
    }
}

返回后的json

下面是几种返回的json数据展示

{
  "code": 0,
  "msg": "success",
  "data": null
}

{
  "code": 0,
  "msg": "添加成功",
  "data": null
}

{
  "code": 0,
  "msg": "success",
  "data": {"这是一条数据"}
}

{
  "code": 1001,
  "msg": "error",
  "data": null
}

{
  "code": 1001,
  "msg": "参数不正确",
  "data": null
}

结语

写的比较简单,基本使用差不多,如果有更为复杂的交互,在现有基础上可以继续升级

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值