项目返参结构封装

在开发项目的过程中,往往需要后端返回前端参数结构一致,本章是整理的两种返参结构的封装格式

1.不指定泛型结构,使用T

import lombok.Data;
import org.apache.http.HttpStatus;

import java.io.Serializable;

@Data //添加lombok依赖就可以使用该注解,非常方便,省去一大堆get和set方法
public class Result<T> implements Serializable {
    private static final long serialVersionUID = 1L;

    private int code;

    private  String msg;

    private T data;

    public Result() {
    }

    public Result(int code,String msg,T data){
        this.code = code;
        this.msg = msg;
        this.data = data;
    }

    /**
     * 只有msg和data入参
     * @param msg
     * @param data
     * @param <T>
     * @return
     */
    public static<T> Result<T> success(String msg,T data){
        return new Result<>(HttpStatus.SC_OK,msg,data);
    }

    /**
     * @description 只有msg入参
     * @param msg
     * @param <T>
     * @return
     */
    public static<T> Result<T> success(String msg){
        return Result.success(msg,null);
    }

    /**
     * @description 只有data入参
     * @param data
     * @param <T>
     * @return
     */
    public static<T> Result<T> success(T data){
        return Result.success("操作成功",data);
    }

    /**
     * @description 用于调用成功,没有返参结果(void)的方法
     * @param <T>
     * @return
     */
    public static<T> Result<T> success(){
        return Result.success("操作成功");
    }

    public static<T> Result<T> error(String msg,T data){
        return new Result<>(HttpStatus.SC_INTERNAL_SERVER_ERROR,msg,data);
    }

    public static<T> Result<T> error(String msg){
        return Result.error(msg,null);
    }

    public static<T> Result<T> error(T data){
        return Result.error("操作失败",data);
    }

    public static<T> Result<T> error(){
        return Result.error("操作失败");
    }
}

2.指定泛型结构

import com.example.springboot.common.core.constant.HttpStatus;
import com.example.springboot.util.StringUtils;

import java.util.HashMap;

public class AjaxResult extends HashMap<String,Object> {

    public static final String CODE = "code";

    public static final String MSG = "msg";

    public static final String Data = "data";

    public AjaxResult() {
    }

    public AjaxResult(int code,String msg) {
        super.put(CODE,code);
        super.put(MSG,msg);
    }

    public AjaxResult(int code,String msg,Object data) {
        super.put(CODE,code);
        super.put(MSG,msg);
        if (StringUtils.isNotNull(data)){
            super.put(Data,data);
        }
    }

    /**
     * 返回成功消息
     * @description msg和data入参
     * @param msg  返回内容
     * @param data 数据对象
     * @return 成功消息
     */
    public static AjaxResult success(String msg,Object data){
        return new AjaxResult(HttpStatus.SUCCESS,msg,data);
    }

    /**
     * @description 只有msg入参
      * @param msg
     * @return
     */
    public static AjaxResult success(String msg){
        return AjaxResult.success(msg,null);
    }

    /**
     * @description 只有data入参
     * @param data
     * @return
     */
    public static AjaxResult success(Object data){
        return AjaxResult.success("操作成功",data);
    }

    /**
     * @description 用于调用成功,没有返参结果(void)的方法
     * @return
     */
    public static AjaxResult success(){
        return AjaxResult.success("操作成功");
    }

    /**
     * 返回错误消息
     *
     * @param msg  返回内容
     * @param data 数据对象
     * @return 警告消息
     */
    public static AjaxResult error(String msg,Object data){
        return new AjaxResult(HttpStatus.ERROR,msg,data);
    }

    public static AjaxResult error(){
        return AjaxResult.error("操作失败");
    }

    public static AjaxResult error(String msg){
        return AjaxResult.error(msg,null);
    }

    public static AjaxResult error(Object data){
        return AjaxResult.error("操作失败",data);
    }
}

自定义返回状态码

/**
 * 返回状态码
 */
public class HttpStatus {
    /**
     * 操作成功
     */
    public static final int SUCCESS = 200;

    /**
     * 操作失败
     */
    public static final int ERROR = 500;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容