前言
在我们java平常的开发中,比较重要的一点就是对于接口的返回值的定义,因为基本大部分的api接口都需要一个统一的返回,这样调用方就比较好处理,逻辑也清晰,所以设计一个统一的返回就比较重要了
返回值的构成我看了一些api也基本差不多,大致都有这么几种构成
codecode一般用来表示接口的调用情况,调用方可以根据code表判断这个接口的调用情况,
例如0 可以标识成功,1可以表示报错,2可以表示未登录,3可以表示没有权限…
自己定义规则就行
msg表示提示信息
可以是成功的消息success 新增成功 删除成功
也可以是失败的原因,error 没有权限 参数错误等等
一些查询接口调用会有一个返回数据,用data来表示,工具类采用泛型
代码实现- 因为是工具方法,所有把所有的构造方法的私有化了,使用静态方法调用更方便
- 使用lombok让代码更简洁@Data
- 开启链式编程更方便@Accessors(chain = true)
import lombok.Data; import lombok.experimental.Accessors; @Data @Accessors(chain = true) public class Re返回后的json{ 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 Re ok(T data) { return new Re (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数据展示
{
"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
}
结语
写的比较简单,基本使用差不多,如果有更为复杂的交互,在现有基础上可以继续升级



