zoukankan      html  css  js  c++  java
  • SpringBoot06 统一响应格式

    1 要求

      每个请求成功后,后台返回的响应格式都是一致的,例如:

        

    2 创建一个视图模型

      该模型用于格式化响应数据

    package cn.xiangxu.springboottest.model.dataViewModel;
    
    import lombok.Data;
    
    @Data
    public class ResultViewModel<T> {
        private Integer code;
        private String message;
        private T data;
    }

    3 创建一个视图模型工具类

      该工具类根据传入的参数来实例化视图模型类

      

    package cn.xiangxu.springboottest.utils;
    
    import cn.xiangxu.springboottest.model.dataViewModel.ResultViewModel;
    
    /**
     * 响应数据封装类
     */
    public class ResultViewModelUtil {
        /**
         * 请求成功方法01
         * @param object 响应数据
         * @return 视图模型实例
         */
        public static ResultViewModel success(Object object) {
            ResultViewModel resultViewModel = new ResultViewModel();
            resultViewModel.setCode(0);
            resultViewModel.setMessage("请求成功");
            resultViewModel.setData(object);
            return resultViewModel;
        }
    
        /**
         * 请求成功方法02
         * @return 视图模型实例
         */
        public static ResultViewModel success() {
            return success(null);
        }
    
        /**
         * 请求失败方法01(捕获到的已知异常)
         * @param code 异常编号
         * @param message 异常信息
         * @return 视图模型实例
         */
        public static ResultViewModel error(Integer code, String message) {
            ResultViewModel resultViewModel = new ResultViewModel();
            resultViewModel.setCode(code);
            resultViewModel.setMessage(message);
            resultViewModel.setData(null);
            return resultViewModel;
        }
    
        /**
         * 请求失败方法02(系统异常)
         * @return 视图模型实例
         */
        public static ResultViewModel error() {
            ResultViewModel resultViewModel = new ResultViewModel();
            resultViewModel.setCode(-1);
            resultViewModel.setMessage("系统异常");
            resultViewModel.setData("系统维护中...");
            return resultViewModel;
        }
    }
    View Code

    4 利用视图模型工具类向前台返回格式化的JSON数据

      

    package cn.xiangxu.springboottest.controller;
    
    import cn.xiangxu.springboottest.model.dataViewModel.ResultViewModel;
    import cn.xiangxu.springboottest.service.GirlService;
    import cn.xiangxu.springboottest.utils.ResultViewModelUtil;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.annotation.Resource;
    
    @RestController
    @RequestMapping(value = "/girl")
    @Slf4j
    public class GirlController {
    
        @Resource(name = "girlService")
        private GirlService girlService;
    
        @GetMapping
        public ResultViewModel test() {
            log.info("hello boy");
            return ResultViewModelUtil.success("响应数据");
    //        return ResultViewModelUtil.success(girlService.findAllGirl());
        }
    
    }
    View Code
  • 相关阅读:
    副业收入是我做程序员的2倍!副业这么有 “钱”景,我要考虑转行吗?
    C语言丨const关键字的用法详解
    C/C++学习笔记:C/C++函数调用的方式,你应该要学会这五种
    软件崩溃了,该如何解决? 解决问题的关键要会对症下药!
    C语言丨深入理解volatile关键字
    C语言丨getch(),getche()和getchar()的区别
    学编程的误区——眼高手低,不重视练习!
    通过编写“猜测数字”游戏来探索Linux中的Bash
    零基础想要更快入门Linux?找对方法,让你少奋斗10年!
    VS/VC 出现闪退怎么办?这4个技巧要知道!
  • 原文地址:https://www.cnblogs.com/NeverCtrl-C/p/8177492.html
Copyright © 2011-2022 走看看