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里面就查出来的数据

Java封装公共Result结果返回类的实现

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

Java封装公共Result结果返回类的实现

是我们想要的返回格式

失败测试

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

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

Java封装公共Result结果返回类的实现

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

Java封装公共Result结果返回类的实现

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

Java封装公共Result结果返回类的实现

来源:https://blog.csdn.net/weixin_46713508/article/details/128569608

标签:Java,Result,返回类
0
投稿

猜你喜欢

  • 2020.2 IntelliJ IDEA激活与IDEA2020.2破解详细教程

    2023-06-20 11:36:12
  • 详解Android Flutter中SliverAppBar的使用教程

    2023-06-23 12:11:27
  • Java多线程之ThreadLocal浅析

    2023-06-19 19:55:37
  • 详解C++ STL模拟实现forward_list

    2023-06-21 02:36:04
  • IntelliJ IDEA 2020最新激活码(亲测有效,可激活至 2089 年)

    2023-06-21 20:17:57
  • 替换so文件来动态替换Flutter代码实现详解

    2023-06-23 16:24:06
  • OpenCV实现直线拟合

    2023-06-22 15:22:37
  • Java自定义实现链队列详解

    2023-06-22 12:47:31
  • SpringBoot文件分片上传的示例代码

    2023-06-18 11:30:15
  • Java 信号量Semaphore的实现

    2023-06-19 11:00:34
  • springboot大文件上传、分片上传、断点续传、秒传的实现

    2023-06-16 02:18:30
  • Opencv光流运动物体追踪详解

    2023-06-21 11:55:31
  • springboot post接口接受json时,转换为对象时,属性都为null的解决

    2023-06-17 15:24:23
  • Flutter app页面路由以及路由拦截的实现

    2023-06-23 14:21:18
  • C++实现LeetCode(205.同构字符串)

    2023-06-21 04:06:54
  • Flutter应用集成极光推送的实现示例

    2023-06-24 03:51:04
  • flutter TextField换行自适应的实现

    2023-06-21 01:21:39
  • flutter ExpansionTile 层级菜单的实现

    2023-06-15 16:04:01
  • iOS应用中使用Toolbar工具栏方式切换视图的方法详解

    2023-06-21 09:24:48
  • 基于Flutter实现多边形和多角星组件

    2023-06-19 06:02:50
  • asp之家 软件编程 m.aspxhome.com