zoukankan      html  css  js  c++  java
  • 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);
        }
    
  • 相关阅读:
    Oracle安装错误ora-00922(zhuan)
    Context上下文对象(抄书的)
    我的oracle账号
    jquery总结(1)
    JS改变input的value值不触发onchange事件解决方案 (转)
    写表单验证等页面的总结
    表单验证模板2
    Session随便写的(抄书笔记)
    cookie随便写的一点笔记(抄书的)
    Oracle触发器修改数据时同步执行插入该条数据
  • 原文地址:https://www.cnblogs.com/vincenshen/p/10422150.html
Copyright © 2011-2022 走看看