后端统一接口返回状态【初步模板】

news/2024/12/22 23:01:10 标签: java, 开发语言, mybatis, spring boot

后端统一接口返回状态【模板】

文章目录

  • 后端统一接口返回状态【模板】
      • 1 .Result类编写
      • 2 .Constants类编写
      • 3 .更改Controller层下的类return格式

开发过程中,每个接口的返回格式设计都是一样的,这样可以大大提高开发效率。
在这里插入图片描述

项目结构如下图:分别创建Result类和Constants接口

在这里插入图片描述

1 .Result类编写

  • 未使用Lombok插件的Result类代码

    package com.wudreamer.springboot2.config;
    /**
     * 接口统一返回包装类
     */
    public class Result {
    
        private String code;
        private String msg;
        private Object data;
    
        public Result() {
            // 无参构造函数
        }
    
        public Result(String code, String msg, Object data) {
            this.code = code;
            this.msg = msg;
            this.data = data;
        }
    
        public static Result success() {
            return new Result(Constants.CODE_200, "", null);
        }
    
        public static Result success(Object data) {
            return new Result(Constants.CODE_200, "", data);
        }
    
        public static Result error(String code, String msg) {
            return new Result(code, msg, null);
        }
    
        public static Result error() {
            return new Result(Constants.CODE_500, "系统错误", null);
        }
    
        public String getCode() {
            return code;
        }
    
        public void setCode(String code) {
            this.code = code;
        }
    
        public String getMsg() {
            return msg;
        }
    
        public void setMsg(String msg) {
            this.msg = msg;
        }
    
        public Object getData() {
            return data;
        }
    
        public void setData(Object data) {
            this.data = data;
        }
    }
    
  • 使用Lombok插件后的Result类代码

    import com.ppj.constants.Constants;
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    /**
     * 接口统一返回包装类
     */
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public class Result {
    
        private String code;
        private String msg;
        private Object data;
    
        public static Result success() {
            return new Result(Constants.CODE_200, "", null);
        }
    
        public static Result success(Object data) {
            return new Result(Constants.CODE_200, "", data);
        }
    
        public static Result error(String code, String msg) {
            return new Result(code, msg, null);
        }
    
        public static Result error() {
            return new Result(Constants.CODE_500, "系统错误", null);
        }
    
    }
    
    

2 .Constants类编写

存放状态码

java">package com.wudreamer.springboot2.config;

public interface Constants {
        String CODE_200 = "200"; //成功
        String CODE_401 = "401";  // 权限不足
        String CODE_400 = "400";  // 参数错误
        String CODE_500 = "500"; // 系统错误
        String CODE_600 = "600"; // 其他业务异常

}

3 .更改Controller层下的类return格式

在这里插入图片描述

将返回类型更改为Result、修改return 。

// 查询所有用户
    @GetMapping
    public Result findAll() {
        return Result.success(userService.findAll());
    }

    // 根据id查询单个用户
    @GetMapping("/{id}")
    public Result findById(@PathVariable Integer id) {
        return Result.success(userService.findById(id));
    }

    // 新增单个用户
    @PostMapping
    public Result insert(@RequestBody User user) {
        userService.insert(user);
        return Result.success();
    }

    // 修改用户
    @PutMapping
    public Result update(@RequestBody User user) {
        userService.update(user);
        return Result.success();
    }

    // 删除单个用户
    @DeleteMapping("/{id}")
    public Result delete(@PathVariable Integer id) {
        userService.delete(id);
        return Result.success();
    }

http://www.niftyadmin.cn/n/5796046.html

相关文章

LabVIEW实现ZigBee通信

目录 1、ZigBee通信原理 2、硬件环境部署 3、程序架构 4、前面板设计 5、程序框图设计 6、测试验证 本专栏以LabVIEW为开发平台,讲解物联网通信组网原理与开发方法,覆盖RS232、TCP、MQTT、蓝牙、Wi-Fi、NB-IoT等协议。 结合实际案例,展示如何利用LabVIEW和常用模块实现物联网…

MyBatis通过注解配置执行SQL语句原理源码分析

文章目录 前置准备流程简要分析配置文件解析加载 Mapper 接口MapperAnnotationBuilder解析接口方法注解parseStatement 方法详解MapperBuilderAssistant 前置准备 创建一个mybatis-config.xml文件&#xff0c;配置mapper接口 <mappers><!--注解配置--><mapper…

软件维护的实施

软件维护活动 (1) 维护机构 除了较大的软件开发公司外&#xff0c;通常在软件维护工作方面&#xff0c;不保持正式的维护机构。维护往往是在没有计划的情况下进行的。虽然不要求建立一个正式的维护机构&#xff0c;但是在开发部门&#xff0c;确立一个非正式的维护机构则是非常…

【算法】栈

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;删除字符串中的所有相邻重复项1047. 删除字符串中的所有相邻重复项 二&#xff1a;比较…

EAS的KDTextField 添加回车事件监听

1、控件绑定一个action&#xff08;可以在ui上配置&#xff09; 2、因为GUI设置的统一的控件切换键为TAB和ENTER两个&#xff0c;所以需要单独设置这个控件的切换键。 Set<KeyStroke> set new HashSet<KeyStroke>(); set.add(KeyStroke.getKeyStroke(KeyEvent.VK_…

【347. 前 K 个高频元素 中等】

题目&#xff1a; 给你一个整数数组 nums 和一个整数 k &#xff0c;请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 示例 1: 输入: nums [1,1,1,2,2,3], k 2 输出: [1,2] 示例 2: 输入: nums [1], k 1 输出: [1] 提示&#xff1a; 1 < nums.leng…

html+css网页设计 美食 百味美食4个页面

htmlcss网页设计 美食 百味美食4个页面 网页作品代码简单&#xff0c;可使用任意HTML辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获取源码 1&#xf…

C# 从控制台应用程序入门

总目录 前言 从创建并运行第一个控制台应用程序&#xff0c;快速入门C#。 一、新建一个控制台应用程序 控制台应用程序是C# 入门时&#xff0c;学习基础语法的最佳应用程序。 打开VS2022&#xff0c;选择【创建新项目】 搜索【控制台】&#xff0c;选择控制台应用(.NET Framew…