Java封装公共Result结果返回类

news2024/11/28 9:41:09

前言

在使用Java开发接口请求中,我们需要对请求进行进行统一返回值,这时候我们自己封装一个统一的Result返回类,下面就介绍下我用的这种的这个类

当然,也可以使用第三方库封装的Result结果返回类,根据个人喜好选择即可。

封装公共Result类

首先需要创建一个Result类:

我的想法是:需要有一个请求成功的响应。一个请求失败的响应,如果请求
成功需要返回请求结果,如果请求失败则返回失败原因,且每一个请求都要带上当前时间戳,请求状态(200:成功,400:失败),是否成功(true成功 or false失败)

顺着这个思路,就写出了下面的代码:

如果你也有不同的思路和建议,欢迎评论留言

package com.wyh.common;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
/**
 * @Author 魏一鹤
 * @Description 公共Result返回类
 * @Date 23:19 2023/1/3
**/

public class Result {
    /**
     * 是否成功
    **/
    private Boolean isSuccess;
    /**
     * 错误信息
     **/
    private String errorMsg;
    /**
     * 请求状态 200-成功 400-失败
     **/
    private Integer status;
    /**
     * 当前时间戳
     **/
    private Long timestamp;
    /**
     * 返回结果
     **/
    private Object data;

    public static Result ok() {
        return new Result(true, null, 200, System.currentTimeMillis(),null);
    }

    public static Result ok(Object data) {
        return new Result(true, null, 200,System.currentTimeMillis(),data);
    }

    public static Result ok(List<?> data) {
        return new Result(true, null, 200,System.currentTimeMillis(),data);
    }

    public static Result fail(String errorMsg) {
        return new Result(false, errorMsg, 400,System.currentTimeMillis(),null);
    }
}

这样一个公共Result结果返回类就写好了,我们简单写两个接口分别测试下失败或者失败吧!

成功测试

首先测试下成功的响应:data里面就查出来的数据

在这里插入图片描述

数据有点多,我们把data合上看下整体结构:

在这里插入图片描述

是我们想要的返回格式

失败测试

接下来测试下请求失败的情况:如图我给方法新增了一个参数name,如果参数name为空,name就会请求失败并且返回错误信息

ps:判断参数是否为空应该放在service里面处理,我这里演示就懒得这么写了

在这里插入图片描述

参数为空的话,请求失败并且返回错误信息

在这里插入图片描述

当然如果name不为空,就是请求成功的:

在这里插入图片描述

总结

以上就是我自己写的一个Result结果返回类,对于现在的需求来说,完全是够用的,如果后面进行升级会再来更新

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/142824.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习笔记之Vue脚手架(三)

&#xff08;三&#xff09;使用Vue脚手架 使用Vue脚手架&#xff08;三&#xff09;使用Vue脚手架一、创建Vue脚手架1.1 说明1.2 具体步骤二、分析脚手架结构2.1 配置文件2.2 src文件夹2.3 public文件夹一、创建Vue脚手架 1.1 说明 1.Vue脚手架是Vue官方提供的标准开发工具&…

电脑技巧:分享常用的电脑快捷键

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

Nutanix 替代专题 | SmartX 与 Nutanix 超融合市场、技术与性能对比

2022 年 8 月 19 日&#xff0c;Nutanix&#xff08;路坦力&#xff09;宣布中国市场自 2023 财年起将转型为合作伙伴销售主导模式&#xff0c;引起了广泛关注&#xff1b;同时结合当前 IT 基础架构的国产化趋势背景&#xff0c;不少正在使用和考虑使用 Nutanix 产品的企业开始…

js 跨域访问问题解决方法

什么引起了ajax不能跨域请求的问题&#xff1f; ajax本身实际上是通过XMLHttpRequest对象来进行数据的交互&#xff0c;而浏览器出于安全考虑&#xff0c;不允许js代码进行跨域操作&#xff0c;所以会警告。 有什么完美的解决方案么&#xff1f; 解决方案有不少&#xff0c;但…

数字化门店管理|如何让门店数字化管理,更加贴合日常运营细节?

在赋能品牌门店数字化管理的过程中&#xff0c;帷幄既注重前沿 AI 算法带来的技术驱动力&#xff0c;也注重基于门店管理中的真实场景与需求&#xff0c;让算法更贴合业务实际需求&#xff0c;从而带来运营优化与降本增效。 1 月&#xff0c;「帷幄数智空间 Whale SpaceSight」…

植物大战 动态内存——C++

这里是目录标题前言动态内存分布如何理解C语法的增加newnew用法关于struct和class的使用关于free和delete的区别。背会这句话抛异常operator new和operator delete内存池new和delete原理定位newmalloc和new的区别是什么&#xff1f;内存泄漏前言 总结复习前面的知识。 注意&a…

一文带你了解什么是云计算网络运维工程师,以及2023年的就业前景

作者简介&#xff1a;一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.云计算网络运维工程师是做什么的? 二.作为一名云计算网络运…

MyBatis(用于简化JDBC开发)

MyBatis是一款持久层框架&#xff0c;用于简化JDBC开发 持久层&#xff1a;将数据报错到数据库&#xff0c;持久化更改的意思 javaEE三层架构&#xff1a;表现层&#xff08;页面&#xff09;、业务层&#xff08;处理逻辑&#xff09;、持久层&#xff08;数据永久化更改&am…

拉伯证券|人心动了?刚刚,A股、港股大涨!

昨日A股传言较多&#xff0c;引发波动。上一年10月底11月初&#xff0c;也有类似情况。换个视点看&#xff0c;这说明人心开端动了&#xff0c;至于怎样个“思变”法&#xff0c;市场可能现已给出了答案&#xff01; 今天上午&#xff0c;A股大涨&#xff0c;北向资金净流入110…

cs231n-2022-01 Assignments1-numpy的使用

numpy的使用 Numpy是Python中科学计算的核心库。它提供了一个高性能的多维数组对象&#xff0c;以及处理这些数组的工具。如果你已经熟悉MATLAB&#xff0c;你可能会发现这个教程对开始使用Numpy很有用。 运行并阅读cs231n课程网站上提供的示例代码&#xff0c;感觉十分简洁&a…

TIA博途SCL学习_堆栈的入栈和出栈(后入先出)程序示例

TIA博途SCL学习_堆栈的入栈和出栈(后入先出)程序示例 如下图所示,添加一个FB块,语言选择SCL,命名为“入栈”, 如下图所示,通过FOR循环实现堆栈数组内的元素的移动,并将入栈的数据赋值给数组的第一个元素, 如下图所示,添加一个全局DB块,在该DB块中添加一个长度为10…

Visio中插入Mathtyp公式

Visio中插入Mathtype公式 打开visio软件&#xff0c;依次点击“插入”–“对象”–“mathtype 6.0 equation”–“确定”&#xff0c;也可以得到我们想要的公式。 点击“对象”&#xff0c;然后显示出Mathtype公式 点击“Mathtype 7.0”&#xff0c;然后显示公式框 Way 1&a…

win10和win11鼠标灵敏度修改和大小颜色其他等步骤

目录 一、前言 二、win10鼠标设置 1.进入鼠标设置界面 2.鼠标速度的调节 3.鼠标大小和颜色的调节 4.鼠标其他设置 三、win11鼠标设置 1.进入搜索界面 2.鼠标大小和颜色设置 3.鼠标的移动灵敏速度设置 4.鼠标图标的自定义 一、前言 在使用电脑鼠标时候&#xff0c;会觉…

【自然语言处理】【ChatGPT系列】WebGPT:基于人类反馈的浏览器辅助问答

WebGPT: 基于人类反馈的浏览器辅助问答《WebGPT: Browser-assisted question-answering with human feedback》论文地址&#xff1a;https://arxiv.org/pdf/2112.09332.pdf 相关博客 【自然语言处理】【ChatGPT系列】WebGPT&#xff1a;基于人类反馈的浏览器辅助问答 【自然语言…

[HTML] HTML基础知识

1.HTML简介 HTML指的是超文本标记语言(HyperText Markup Language)&#xff0c;是一种用于创建网页的标准标记语言 HTML页面基本结构 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X…

SpringMVC框架

一、什么是 SpringMVC ? SpringMVC框架是以请求为驱动&#xff0c;围绕Servlet设计&#xff0c;将请求发给控制器&#xff0c;然后通过模型对象&#xff0c;分派器来展示请求结果视图。其中核心类是DispatcherServlet&#xff0c;它是一个Servlet&#xff0c;顶层是实现的Ser…

不会指针?还不进来看看——进阶指针详解

专栏&#xff1a;C语言 每日一句&#xff1a;人贵有自知之明&#xff0c;知道什么可为和不可为。若不可为&#xff0c;怎样做才能可为&#xff0c;那何时可为。 进阶指针前言一、字符指针二、指针数组1.指针数组的介绍2.指针数组的使用三、数组指针1.数组指针的介绍2.&数组…

历史大讲堂:真那么好用?Windows前世今生

hello大家好&#xff0c;这里是每天日更哒博主。 还记得我第一次说的Microsoft Dos吗&#xff1f;那期我提到一次Windows并许诺要讲讲&#xff0c;这不来了&#xff01;今天我们就详细的盘一盘最好用的系统Windows真有那么神吗&#xff1f; 注意&#xff01;以下内容包含非常…

人脸识别美颜算法实战-深度学习基础知识

深度学习与机器学习的区别: 机器学习:人类定义输入数据的特征 深度学习:机器自动找到输入数据的特征 在深度学习中,采用多层的神经网络架构来提取图像 信息,越靠近底层的神经网络提取出来的都是点、线等低维度特征, 而高维度的神经网络层则会更多地保留比如耳朵、眼睛…

MySQL事务基础知识

前言 学习/导流&#xff1a; 小林coding - 事务篇 学习意义 理解MySQL如何去处理并发问题&#xff0c;借鉴其思想存储作为应用的关键能力&#xff0c;而事务作为关系型数据库的关键概念&#xff0c;掌握很必要&#xff0c;也为分布式事务学习做奠基 相关说明 该篇博文是个…