谷粒学院项目实战33——json统一返回数据
由于项目中不同的模块、前后端一般都不是同一个人编写的,不同的接口返回的数据类型不一致,导致编程很不方便,我们采用json来作为统一返回数据格式。json类型的数据格式一般是两种:对象、数组,在实际中一般是两种格式混合使用。一般json数据的格式没有固定格式,只要能够描述清楚数据的具体信息与状态,但一般包含状态码、返回消息、数据等,我们将本项目的返回数据格式统一如下。
{
"success": 布尔, //响应是否成功
"code": 数字, //响应码
"message": 字符串, //返回消息
"data": HashMap //返回数据,放在键值对中
}
下面具体来实现统一返回数据。
(1)在common下新建maven子模块common_utils.
(2)如下图所示目录结构新建接口Resultcode。
在接口中存放状态码信息。
package com.wangzhou.commonutils;
public interface ResultCode {
//状态码:成功
public static Integer SUCCESS = 20000;
//状态码:失败
public static Integer ERROR = 20001;
}
在同一路径下,创建统一返回结果的类R。
// lombok的注解,自动生成getter,setter等
@Data
public class R {
// swagger的注解
@ApiModelProperty("是否成功")
private boolean success;
@ApiModelProperty("响应码")
private Integer code;
@ApiModelProperty("返回信息")
private String message;
@ApiModelProperty("返回数据")
private Map<String, Object> data = new HashMap<String, Object>();
//无参构造方法私有,其他类不可以创建该类的实例,只能使用其镜头方法
private R() {
}
public static R ok() {
R returnData = new R();
returnData.setSuccess(true);
returnData.setCode(ResultCode.SUCCESS);
returnData.setMessage("成功");
return returnData;
}
public static R error() {
R returnData = new R();
returnData.setSuccess(false);
returnData.setCode(ResultCode.ERROR);
returnData.setMessage("失败");
return returnData;
}
// 方便链式编程,即编程时可以:R.ok().success()
public R success(Boolean success) {
this.success = success;
return this;
}
public R code(Integer code) {
this.code = code;
return this;
}
public R message(String message) {
this.message = message;
return this;
}
public R data(String key, Object value) {
this.data.put(key, value);
return this;
}
public R data(Map<String, Object> data) {
this.setData(data);
return this;
}
}
java全栈日日学 文章被收录于专栏
java全栈每日必学,不要高估自己一年能做的事,不要低估自己十年能做的事