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);
        }
    
  • 相关阅读:
    远程桌面下启动MATLAB时的License Manager Error -103错误
    自签名证书和私有CA签名的证书的区别 创建自签名证书 创建私有CA 证书类型 证书扩展名【转】
    XeLaTeX中文模板
    MySQL Connector 卸载
    Anaconda更新源
    命令行远程重启服务器
    gnuplot画图中文标注相关问题
    CentOS 远程桌面相关服务安装笔记
    Windows下python2.7安装64位mysqlclient
    LaTeX 修订
  • 原文地址:https://www.cnblogs.com/vincenshen/p/10422150.html
Copyright © 2011-2022 走看看