Hello你们好,本章咱们将请求结果封装成统一格式。有问题能够联系我mr_beany@163.com。另求各路大神指点,感谢
咱们调用服务返回的类型有String,List,Map,Bean,Int,Boolean等类型,能够统一成result对象返回,方便项目组其余成员调用接口java
package com.example.demo.core.ret;
/**
* @Description: 响应码枚举,参考HTTP状态码的语义
* @author 张瑶
* @date 2018/4/19 09:42
*/
public enum RetCode {
// 成功
SUCCESS(200),
// 失败
FAIL(400),
// 未认证(签名错误)
UNAUTHORIZED(401),
// 接口不存在
NOT_FOUND(404),
// 服务器内部错误
INTERNAL_SERVER_ERROR(500);
public int code;
RetCode(int code) {
this.code = code;
}
}复制代码
这里简单列出几个,你们能够根据实际业务需求本身定义git
package com.example.demo.core.ret;
import java.io.Serializable;
import com.alibaba.fastjson.JSON;
/**
* @Description: 返回对象实体
* @author 张瑶
* @date 2018/4/19 09:43
*/
public class RetResult<T> {
public int code;
private String msg;
private T data;
public RetResult<T> setCode(RetCode retCode) {
this.code = retCode.code;
return this;
}
public int getCode() {
return code;
}
public RetResult<T> setCode(int code) {
this.code = code;
return this;
}
public String getMsg() {
return msg;
}
public RetResult<T> setMsg(String msg) {
this.msg = msg;
return this;
}
public T getData() {
return data;
}
public RetResult<T> setData(T data) {
this.data = data;
return this;
}
}复制代码
说明:code为状态码、msg为提示信息、data为返回的数据github
package com.example.demo.core.ret;
/**
* @Description: 将结果转换为封装后的对象
* @author 张瑶
* @date 2018/4/19 09:45
*/
public class RetResponse {
private final static String SUCCESS = "success";
public static <T> RetResult<T> makeOKRsp() {
return new RetResult<T>().setCode(RetCode.SUCCESS).setMsg(SUCCESS);
}
public static <T> RetResult<T> makeOKRsp(T data) {
return new RetResult<T>().setCode(RetCode.SUCCESS).setMsg(SUCCESS).setData(data);
}
public static <T> RetResult<T> makeErrRsp(String message) {
return new RetResult<T>().setCode(RetCode.FAIL).setMsg(SUCCESS);
}
public static <T> RetResult<T> makeRsp(int code, String msg) {
return new RetResult<T>().setCode(code).setMsg(msg);
}
public static <T> RetResult<T> makeRsp(int code, String msg, T data) {
return new RetResult<T>().setCode(code).setMsg(msg).setData(data);
}
}复制代码
改造controller代码spring
改造前代码json
@PostMapping("/selectById")
public UserInfo selectById(Integer id){
return userInfoService.selectById(id);
}复制代码
改造前请求返回数据格式springboot
{
"id": 1,
"userName": "1"
}复制代码
改造后代码bash
@PostMapping("/selectById")
public RetResult<UserInfo> selectById(Integer id){
UserInfo userInfo = userInfoService.selectById(id);
return RetResponse.makeOKRsp(userInfo);
}复制代码
改造后请求返回数据格式
服务器
{
"code": 200,
"msg": "success",
"data": {
"id": 1,
"userName": "1"
}
}复制代码
怎么样,是否是感受清爽许多app
码云地址: gitee.com/beany/mySpr…
测试
GitHub地址: github.com/MyBeany/myS…
写文章不易,如对您有帮助,请帮忙点下star
springboot将请求结果封装成统一格式已完成,后续功能接下来陆续更新,有问题能够联系我mr_beany@163.com。另求各路大神指点,感谢你们。