Java封装公共Result结果返回类的实现
作者:小花皮猪 时间:2023-06-17 08:47:47
前言
在使用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
这样一个公共Result结果返回类就写好了,我们简单写两个接口分别测试下失败或者失败吧!
成功测试
首先测试下成功的响应:data里面就查出来的数据
数据有点多,我们把data合上看下整体结构:
是我们想要的返回格式
失败测试
接下来测试下请求失败的情况:如图我给方法新增了一个参数name,如果参数name为空,name就会请求失败并且返回错误信息
ps:判断参数是否为空应该放在service里面处理,我这里演示就懒得这么写了
参数为空的话,请求失败并且返回错误信息
当然如果name不为空,就是请求成功的:
来源:https://blog.csdn.net/weixin_46713508/article/details/128569608
标签:Java,Result,返回类
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
2020.2 IntelliJ IDEA激活与IDEA2020.2破解详细教程
2023-06-20 11:36:12
![](https://img.aspxhome.com/file/2023/4/57414_0s.jpg)
详解Android Flutter中SliverAppBar的使用教程
2023-06-23 12:11:27
![](https://img.aspxhome.com/file/2023/7/97867_0s.jpg)
Java多线程之ThreadLocal浅析
2023-06-19 19:55:37
![](https://img.aspxhome.com/file/2023/0/57500_0s.webp)
详解C++ STL模拟实现forward_list
2023-06-21 02:36:04
![](https://img.aspxhome.com/file/2023/0/60100_0s.jpg)
IntelliJ IDEA 2020最新激活码(亲测有效,可激活至 2089 年)
2023-06-21 20:17:57
![](https://img.aspxhome.com/file/2023/8/57408_0s.gif)
替换so文件来动态替换Flutter代码实现详解
2023-06-23 16:24:06
![](https://img.aspxhome.com/file/2023/9/83549_0s.png)
OpenCV实现直线拟合
2023-06-22 15:22:37
![](https://img.aspxhome.com/file/2023/4/92494_0s.jpg)
Java自定义实现链队列详解
2023-06-22 12:47:31
![](https://img.aspxhome.com/file/2023/6/57426_0s.png)
SpringBoot文件分片上传的示例代码
2023-06-18 11:30:15
![](https://img.aspxhome.com/file/2023/8/57488_0s.jpg)
Java 信号量Semaphore的实现
2023-06-19 11:00:34
springboot大文件上传、分片上传、断点续传、秒传的实现
2023-06-16 02:18:30
Opencv光流运动物体追踪详解
2023-06-21 11:55:31
![](https://img.aspxhome.com/file/2023/4/91994_0s.jpg)
springboot post接口接受json时,转换为对象时,属性都为null的解决
2023-06-17 15:24:23
![](https://img.aspxhome.com/file/2023/3/57313_0s.png)
Flutter app页面路由以及路由拦截的实现
2023-06-23 14:21:18
![](https://img.aspxhome.com/file/2023/0/87300_0s.gif)
C++实现LeetCode(205.同构字符串)
2023-06-21 04:06:54
Flutter应用集成极光推送的实现示例
2023-06-24 03:51:04
![](https://img.aspxhome.com/file/2023/2/90172_0s.jpg)
flutter TextField换行自适应的实现
2023-06-21 01:21:39
flutter ExpansionTile 层级菜单的实现
2023-06-15 16:04:01
![](https://img.aspxhome.com/file/2023/7/91007_0s.png)
iOS应用中使用Toolbar工具栏方式切换视图的方法详解
2023-06-21 09:24:48
![](https://img.aspxhome.com/file/2023/6/98646_0s.png)
基于Flutter实现多边形和多角星组件
2023-06-19 06:02:50
![](https://img.aspxhome.com/file/2023/7/84747_0s.png)