SpringBoot 通用返回类设计
在项目中通常需要为前端设计通过的返回类,返回的格式为:
{
"status": "success",
"data": {...}
}
定义通过返回类:CommonReturnType
/**
* 通用返回结果类
* 包含请求结果 status : "success" or "failed"
* 包含请求数据 data : {}
*/
public class CommonReturnType {
// 表明对应请求的返回处理结果为: "success" or "failed"
private String status;
// 若status=success, 则data内返回前端需要的json数据
// 若status=failed, 则data内使用通用的错误码格式
private Object data;
// 通用静态工厂方法
public static CommonReturnType create(Object result){
return CommonReturnType.create(result, "success");
}
// 封装返回数据data
public static CommonReturnType create(Object result, String status){
CommonReturnType returnType = new CommonReturnType();
returnType.setStatus(status);
returnType.setData(result);
return returnType;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
}
在Controller中使用
@GetMapping("/get")
@ResponseBody
public CommonReturnType getUser(@RequestParam(name = "id") Integer id) throws BusinessException {
// 调用service服务获取对应id的用户对象并返回给前端
UserModel userModel = userService.getUserById(id);
// 获取对应的用户不存在
if(userModel == null){
throw new BusinessException(EnumBusinessError.USER_NOT_EXIST);
}
// 将核心领域模型用户对象转换为可供UI使用的ViewObject,而不是直接将UserModel返回给前端
UserVO userVO = convertFromModel(userModel);
// 返回通用对象
return CommonReturnType.create(userVO);
}