统一返回数据结果
项目中我们会将响应封装成json返回,一般我们会将所有接口的数据格式统一, 使前端(iOS Android, Web)对数据的操作更一致、轻松。 一般情况下,统一返回数据格式没有固定的格式,只要能描述清楚返回的数据状态以及要返回的具体数据就可以。但是一般会包含状态码、返回消息、数据这几部分内容 例如,我们的系统要求返回的基本数据格式如下:
列表:
{
"success": true,
"code": 20000,
"message": "成功",
"data": {
"items": [
{
"id": "1",
"name": "刘德华",
"intro": "毕业于师范大学数学系,热爱教育事业,执教数学思维6年有余"
}
]
}
}
分页:
{
"success": true,
"code": 20000,
"message": "成功",
"data": {
"total": 17,
"rows": [
{
"id": "1",
"name": "刘德华",
"intro": "毕业于师范大学数学系,热爱教育事业,执教数学思维6年有余"
}
]
}
}
没有返回数据:
{
"success": true,
"code": 20000,
"message": "成功",
"data": {}
}
失败:
{
"success": false,
"code": 20001,
"message": "失败",
"data": {}
}
因此,我们定义统一结果:
{
"success": 布尔
,
"code": 数字
,
"message": 字符串
,
"data": HashMap
}
编码简单实现
简单返回结果状态码
package com
.njau
.edu
.common
;
public interface ResultCode {
int SUCCESS
= 2000;
int ERROR
= 2001;
int AUTH
= 3000;
}
全局统一返回结果:
package com
.njau
.edu
.common
;
import io
.swagger
.annotations
.ApiModel
;
import io
.swagger
.annotations
.ApiModelProperty
;
import lombok
.Data
;
import java
.util
.HashMap
;
import java
.util
.Map
;
@Data
@ApiModel(value
= "全局统一返回结果")
public class R {
@ApiModelProperty(value
= "是否成功")
private Boolean success
;
@ApiModelProperty(value
= "返回码")
private Integer code
;
@ApiModelProperty(value
= "返回消息")
private String message
;
@ApiModelProperty(value
= "返回数据")
private Map
<String, Object> data
= new HashMap<String, Object>();
private R(){}
public static R
ok(){
R r
= new R();
r
.setSuccess(true);
r
.setCode(ResultCode
.SUCCESS
);
r
.setMessage("操作成功!");
return r
;
}
public static R
error(){
R r
= new R();
r
.setSuccess(false);
r
.setCode(ResultCode
.ERROR
);
r
.setMessage("操作失败!");
return r
;
}
public R
success(Boolean success
){
this.setSuccess(success
);
return this;
}
public R
message(String message
){
this.setMessage(message
);
return this;
}
public R
code(Integer code
){
this.setCode(code
);
return this;
}
public R
data(String key
, Object value
){
this.data
.put(key
, value
);
return this;
}
public R
data(Map
<String, Object> map
){
this.setData(map
);
return this;
}
}
转载请注明原文地址: https://mac.8miu.com/read-514506.html