自定义通用返回对象

这篇具有很好参考价值的文章主要介绍了自定义通用返回对象。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目的:给返回对象补充一些信息,告诉前端这个请求在业务层面上是成功还是失败,以及具体的描述信息。

我们需要自定义错误码(因为前端的HTTP状态码默认的值比较少)和正常错误返回类。

ErrorCode :

package com.heo.ezyuserbackend.common;

public enum ErrorCode {
    SUCCESS(0, "ok", ""),
    PARAMS_ERROR(40000, "请求参数错误", ""),
    NULL_ERROR(40001, "请求参数为空", ""),
    NOT_LOGIN(40100, "未登录", ""),
    NO_AUTH(40101, "无权限", ""),
    SYSTEM_ERROR(50000,"系统内部异常","");
    private final int code;

    /**
     * 状态码信息
     */
    private  final String message;

    public int getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }

    public String getDescription() {
        return description;
    }

    /**
     * 状态码描述(详情)
     */
    private final String description;

    ErrorCode(int code, String message, String description) {
        this.code = code;
        this.message = message;
        this.description = description;
    }
}

BaseResponse:

package com.heo.ezyuserbackend.common;

import lombok.Data;

import java.io.Serializable;

/**
 * 通用返回类
 *
 * @param <T>
 */
@Data
public class BaseResponse<T> implements Serializable {

    private int code;

    private T data;

    private String message;

    private String description;


    public BaseResponse(int code, T data, String message, String description) {
        this.code = code;
        this.data = data;
        this.message = message;
        this.description = description;
    }

    public BaseResponse(int code, T data,String message) {
        this(code, data, message,"");
    }

    public BaseResponse(int code, T data) {
        this(code, data, "", "");
    }

    public BaseResponse(ErrorCode errorCode) {
        this(errorCode.getCode(), null, errorCode.getMessage(), errorCode.getDescription());
    }
}

ResultUtil :文章来源地址https://www.toymoban.com/news/detail-820046.html

package com.heo.ezyuserbackend.common;

import com.fasterxml.jackson.databind.ser.Serializers;

/**
 * 返回工具类
 */
public class ResultUtil {
    /**
     * 成功
     *
     * @param data
     * @param <T>
     * @return
     */
    public static <T> BaseResponse<T> success(T data) {
        return new BaseResponse<>(0, data, "ok");
    }

    /**
     * 失败
     *
     * @param errorCode
     * @return
     */
    public static <T> BaseResponse<T> error(ErrorCode errorCode) {
        return new BaseResponse<>(errorCode);
    }

    /**
     * 失败
     *
     * @param code
     * @param message
     * @param description
     * @param <T>
     * @return
     */
    public static <T> BaseResponse<T> error(int code, String message, String description) {
        return new BaseResponse<>(code, null, message, description);
    }

    /**
     * 失败
     *
     * @param errorCode
     * @param message
     * @param description
     * @param <T>
     * @return
     */
    public static <T> BaseResponse<T> error(ErrorCode errorCode, String message, String description) {
        return new BaseResponse<>(errorCode.getCode(), null, message, description);
    }

    /**
     * 失败
     *
     * @param errorCode
     * @param description
     * @return
     */
    public static BaseResponse error(ErrorCode errorCode, String description) {
        return new BaseResponse<>(errorCode.getCode(), errorCode.getMessage(), description);
    }
}

到了这里,关于自定义通用返回对象的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java调用WebService接口,SOAP协议HTTP请求返回XML对象

    Java调用Web service接口SOAP协议HTTP请求,解析返回的XML字符串: 1. 使用Java的HTTP库发送SOAP请求,并接收返回的响应。 可以使用Java的HttpURLConnection、Apache HttpClient等库。 2. 将返回的响应转换为字符串。 3. 解析XML字符串 ,可以使用Java的DOM解析器或者其他第三方库,如JDOM、DOM4J等。

    2024年01月19日
    浏览(48)
  • java 使用stream累加对象中某个属性的值并返回总和

    假设有一个包含对象的List列表,每个对象都有一个属性value,可以使用Java 8中的Stream流来累加对象中某个属性的值并返回总和。以下是一些可能的实现方法: 1、使用reduce方法: 这里使用了mapToInt方法将每个对象转换为其value属性的值,然后使用reduce方法将这些值累加起来。

    2024年02月11日
    浏览(81)
  • Java中不同对象调用该实例方法返回值是同一个地址空间吗?

    结论 不一定。 基本类型返回的是值 引用数据类型返回的是引用地址(是否同一个引用看是否用到常量池) \\\'==\\\' 基本类型比较的是两者的值是否相同 而引用类型比较两者的是引用地址是否相同 返回的值相同 \\\'==\\\'就为true 返回的引用地址相同 \\\'==\\\'就是true

    2023年04月25日
    浏览(47)
  • 通过myBatis将sql语句返回的值自动包装成一个java对象(1)以及SqlSessionFactory

    如果我们从数据库中读取了一个用户的两个属性——用户名和密码。此时我们希望把这两个属性放入一个java的用户对象中。我们可以选择new一个user对象,向构造器传入我们刚刚读取的两个属性。但一旦从数据库中读取的内容变多,我们就需要new很多新的对象。这时我们就可

    2024年01月18日
    浏览(48)
  • 通用返回结果类ResultVO

    ​定义ResultVO类,作返回给前端的对象结构,主要有4个字段 code : 错误码 data : 内容 message : 消息 description : 具体描述 返回值用 ResultVOXXX 封装 成功返回: ResultUtils.success(XX); 失败失败: ResultUtils.error(code,message,description); 跟之前对比,代码更加优雅 返回给前端的响应结果 成功

    2024年02月08日
    浏览(27)
  • Java Web3J :使用web3j调用自己的智能合约,返回一个内部有数组的对象结构时出现NPE问题

    之前有写过一篇文章Java Web3J :使用web3j调用自己的智能合约的方法(教程),当时只是简单的方法调用,也不涉及到什么复杂的数据类型,入参是long类型,出参是String类型。 遇到这个问题是因为有一个方法,需要通过提案的治理id,查询链上提案数据,这个就需要接收提案

    2024年01月19日
    浏览(62)
  • 【uniapp】小程序自定义一个通用的返回按钮组件

    左边箭头,右边文字可以自定义,但是不要太长,太长可以自己改 .back的width值,改宽一点。 用这个组件的时候首先要在pages.json里把导航栏变成自定义的: 组件:backPages.vue 使用的时候需要传按钮名:backtext = ‘返回或者自定义’ 需要import引入组件并注册components才行,示例

    2024年02月12日
    浏览(46)
  • Java 自定義 List<T> 分頁工具

    PS: T可修改为对应的实体 设置 显示第三页数据,数据条数为4 执行结果: END

    2024年04月13日
    浏览(24)
  • Java实现方法接口入参同时包含文件、字段和对象等多种类型。HTTP请求返回415状态,Content type ‘application/octet-stream‘ not supported错误。

    方法一:对象不使用注解 使用Postman测试,直接将subject对象的字段填在key的位置 方法二:对象使用注解@RequestPart 使用Postman测试,将字段包装在subject对象里,使用Content type:application/json的内容类型 注:方法二在开发本地测试执行成功,但是在测试人员机子下不通过,执行报

    2024年02月12日
    浏览(40)
  • 5.4 如何在Mybatis中使用insert标签并返回主键id?-- 教你通用做法

    通过 《上文》,我们学会了XML映射文件Mapper的创建,以及最常用的select标签和resultMap标签,本文主要讲解 insert标签 ,用于和insert SQL语句映射,非常简单上手,只有两个点可以扩展讲讲:一个点是 insert后返回主键id(会介绍两种方式) ,另外一个点是 实现批量添加 ,原本打算

    2024年02月06日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包