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
  • 相关阅读:
    Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test)
    maven打包报错:Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.5:test
    关于log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).的问题
    maven-source 1.3 中不支持注释请使用 -source 5 或更高版本以启用注释
    <Android基础>(二) Activity Part 1
    <Android基础>(一)
    数制
    第二次实验报告:使用Packet Tracer分析应用层协议
    在Windows Server 2003中搭建DNS服务器
    第一次作业:使用Packet Tracer分析HTTP包
  • 原文地址:https://www.cnblogs.com/NeverCtrl-C/p/8177492.html
Copyright © 2011-2022 走看看