java封装http返回结果类(代码片段)

流楚丶格念 流楚丶格念     2023-03-14     124

关键词:

文章目录

封装类如下

HTTP状态码枚举类

package com.yyl.model.common.enums;

public enum AppHttpCodeEnum 

    // 成功段固定为200
    SUCCESS(200,"操作成功"),
    // 登录段1~50
    NEED_LOGIN(1,"需要登录后操作"),
    LOGIN_PASSWORD_ERROR(2,"密码错误"),
    // TOKEN50~100
    TOKEN_INVALID(50,"无效的TOKEN"),
    TOKEN_EXPIRE(51,"TOKEN已过期"),
    TOKEN_REQUIRE(52,"TOKEN是必须的"),
    // SIGN验签 100~120
    SIGN_INVALID(100,"无效的SIGN"),
    SIG_TIMEOUT(101,"SIGN已过期"),
    // 参数错误 500~1000
    PARAM_REQUIRE(500,"缺少参数"),
    PARAM_INVALID(501,"无效参数"),
    PARAM_IMAGE_FORMAT_ERROR(502,"图片格式有误"),
    SERVER_ERROR(503,"服务器内部错误"),
    // 数据错误 1000~2000
    DATA_EXIST(1000,"数据已经存在"),
    AP_USER_DATA_NOT_EXIST(1001,"ApUser数据不存在"),
    DATA_NOT_EXIST(1002,"数据不存在"),
    // 数据错误 3000~3500
    NO_OPERATOR_AUTH(3000,"无权限操作"),
    NEED_ADMIND(3001,"需要管理员权限"),

    // 自媒体文章错误 3501~3600
    MATERIASL_REFERENCE_FAIL(3501,"素材引用失效");


    int code;
    String errorMessage;

    AppHttpCodeEnum(int code, String errorMessage)
        this.code = code;
        this.errorMessage = errorMessage;
    

    public int getCode() 
        return code;
    

    public String getErrorMessage() 
        return errorMessage;
    


通用的结果返回类

package com.yyl.model.common.dtos;

import com.alibaba.fastjson.JSON;
import com.heima.model.common.enums.AppHttpCodeEnum;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 通用的结果返回类
 * @param <T>
 */
public class ResponseResult<T> implements Serializable 

    private String host;

    private Integer code;

    private String errorMessage;

    private T data;

    public ResponseResult() 
        this.code = 200;
    

    public ResponseResult(Integer code, T data) 
        this.code = code;
        this.data = data;
    

    public ResponseResult(Integer code, String msg, T data) 
        this.code = code;
        this.errorMessage = msg;
        this.data = data;
    

    public ResponseResult(Integer code, String msg) 
        this.code = code;
        this.errorMessage = msg;
    

    public static ResponseResult errorResult(int code, String msg) 
        ResponseResult result = new ResponseResult();
        return result.error(code, msg);
    

    public static ResponseResult okResult(int code, String msg) 
        ResponseResult result = new ResponseResult();
        return result.ok(code, null, msg);
    

    public static ResponseResult okResult(Object data) 
        ResponseResult result = setAppHttpCodeEnum(AppHttpCodeEnum.SUCCESS, AppHttpCodeEnum.SUCCESS.getErrorMessage());
        if(data!=null) 
            result.setData(data);
        
        return result;
    

    public static ResponseResult errorResult(AppHttpCodeEnum enums)
        return setAppHttpCodeEnum(enums,enums.getErrorMessage());
    

    public static ResponseResult errorResult(AppHttpCodeEnum enums, String errorMessage)
        return setAppHttpCodeEnum(enums,errorMessage);
    

    public static ResponseResult setAppHttpCodeEnum(AppHttpCodeEnum enums)
        return okResult(enums.getCode(),enums.getErrorMessage());
    

    private static ResponseResult setAppHttpCodeEnum(AppHttpCodeEnum enums, String errorMessage)
        return okResult(enums.getCode(),errorMessage);
    

    public ResponseResult<?> error(Integer code, String msg) 
        this.code = code;
        this.errorMessage = msg;
        return this;
    

    public ResponseResult<?> ok(Integer code, T data) 
        this.code = code;
        this.data = data;
        return this;
    

    public ResponseResult<?> ok(Integer code, T data, String msg) 
        this.code = code;
        this.data = data;
        this.errorMessage = msg;
        return this;
    

    public ResponseResult<?> ok(T data) 
        this.data = data;
        return this;
    

    public Integer getCode() 
        return code;
    

    public void setCode(Integer code) 
        this.code = code;
    

    public String getErrorMessage() 
        return errorMessage;
    

    public void setErrorMessage(String errorMessage) 
        this.errorMessage = errorMessage;
    

    public T getData() 
        return data;
    

    public void setData(T data) 
        this.data = data;
    

    public String getHost() 
        return host;
    

    public void setHost(String host) 
        this.host = host;
    

测试一下

写一个main方法在里面,测试各个功能:

import com.alibaba.fastjson.JSON;
import com.heima.model.common.enums.AppHttpCodeEnum;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
	业务功能......
*/

public static void main(String[] args) 
    //前置
    System.out.println("*********************  状态信息  *************************");
    System.out.println("成功========================");
    AppHttpCodeEnum success = AppHttpCodeEnum.SUCCESS;
    System.out.println(success.getCode());
    System.out.println(success.getErrorMessage());
    System.out.println("需要登陆========================");
    AppHttpCodeEnum login = AppHttpCodeEnum.NEED_LOGIN;
    System.out.println(login.getCode());
    System.out.println(login.getErrorMessage());

    //查询一个对象
    System.out.println("*********************  查询一个对象  *************************");
    Map map = new HashMap();
    map.put("name", "林若溪");
    map.put("age", 18);
    ResponseResult result = ResponseResult.okResult(map);
    System.out.println(JSON.toJSONString(result));


    //新增,修改,删除  在项目中统一返回成功即可
    System.out.println("*********************  新增,修改,删除   *************************");

    ResponseResult result1 = ResponseResult.okResult(AppHttpCodeEnum.SUCCESS);
    System.out.println(JSON.toJSONString(result1));


    //根据不用的业务返回不同的提示信息  比如:当前操作需要登录、参数错误
    System.out.println("*********************  根据不用的业务返回不同的提示信息  *************************");
    ResponseResult result2 = ResponseResult.errorResult(AppHttpCodeEnum.NEED_LOGIN, "自定义提示信息:啦啦啦啦啦啦啦啦啦");
    System.out.println(JSON.toJSONString(result2));

    //查询分页信息
    System.out.println("*********************  查询分页信息  *************************");
    PageResponseResult responseResult = new PageResponseResult(1,2,10);
    List list = new ArrayList();
    list.add("玉雪凝");
    list.add("苏映雪");
    list.add("雪凝");
    list.add("苏雪");
    list.add("玉凝");
    list.add("苏映");
    responseResult.setData(list);
    System.out.println(JSON.toJSONString(responseResult));


运行结果如下

laravel通过request表单验证类返回封装http状态码(代码片段)

...ailedValidation`方法3、创建一个控制器4、路由访问预览结果封装http状态码1、新建http状态码类2、新建Http状态码提示信息3、新建自定义Http状态码修改requestController类的FormRequest方法创建request表单验证类1、创建表单验证类phpartisanmake... 查看详情

laravel通过request表单验证类返回封装http状态码(代码片段)

...ailedValidation`方法3、创建一个控制器4、路由访问预览结果封装http状态码1、新建http状态码类2、新建Http状态码提示信息3、新建自定义Http状态码修改requestController类的FormRequest方法创建request表单验证类1、创建表单验证类phpartisanmake... 查看详情

pythonflaskresponse返回结果封装工具类(代码片段)

✨工具类介绍封装后端获取到的数据在blueprints中可以直接通过returnresponse(code=200,data=data,message=\'登陆成功\')形式返回给前端✨简单封装工具类fromflaskimportjsonifydefresponse(code=200,message=\'\',data=None):"""自定义返回结果的封装函数:paramco... 查看详情

项目封装:统一结果,统一异常,统一日志(代码片段)

   统一结果返回目前的前后端开发大部分数据的传输格式都是json,因此定义一个统一规范的数据格式有利于前后端的交互与UI的展示。统一结果的一般形式是否响应成功;响应状态码;状态码描述;响应数据其他标识符结... 查看详情

springboot统一结果封装(代码片段)

ResultVo,返回结果对象@DatapublicclassResultVo<T>privateIntegercode;privateStringmessage;privateTdata;ResultVoUtil,封装返回结果publicclassResultVoUtilpublicstatic<T>ResultVo<T>sucess(Tdata)Re 查看详情

java对jdbc操作结果简单的映射封装

1.对jdbc做一个简单的封装,select可以返回一个javabean对象,而不是resultset。主要用了反射。这是我之前写的代码,做了简单的修改。  实现功能:a.对数据库的基本操作增删改查       b.对查询的单条记录返回一个指定... 查看详情

java封装okhttp3工具类(代码片段)

Java封装OkHttp3工具类,适用于Java后端开发者说实在话,用过挺多网络请求工具,有过java原生的,HttpClient3和4,但是个人感觉用了OkHttp3之后,之前的那些完全不想再用了。怎么说呢,代码轻便,使用... 查看详情

python编程封装函数根据输入参数计算结果返回(代码片段)

一、问题描述definefunction,calculatetheinputparametersandreturntheresult.数据存放在txt里,为10行10列的矩阵。编写一个函数,传入参数:文件路径、第一个数据行列索引、第二个数据行列索引和运算符。返回计算结果如果没... 查看详情

python编程封装函数根据输入参数计算结果返回(代码片段)

一、问题描述definefunction,calculatetheinputparametersandreturntheresult.数据存放在txt里,为10行10列的矩阵。编写一个函数,传入参数:文件路径、第一个数据行列索引、第二个数据行列索引和运算符。返回计算结果如果没... 查看详情

java方法遍历一次数组返回两个结果(最大值与最小值)(代码片段)

使用内部类来存储要返回的结果即可实现返回多个参数使用泛型并限定类型必须实现Comparable接口,实现重用使用T...a实现传入不定量个数的数组publicclassArrayAlg/***限定传入的类型必须实现Comparable接口,传入不定个数的数组*@parama*... 查看详情

记一次封装接口返回值问题(代码片段)

因为之前的封装都是一个Result然后三个成员code、msg和data,所以无论是否返回数据,返回结果都会有data,于是我为了完整,就做了如下修改:Result.java:importlombok.Data;/***统一返回格式*/publicclassResult/***成功&... 查看详情

java常用工具类封装(代码片段)

java常用工具类封装importorg.apache.commons.lang.StringUtils;importjava.math.BigDecimal;publicclassCommonUtilpublicstaticStringsafeToString(Objectvalue,StringdefaultValue)if(value!=null)returnStringUti 查看详情

足球比赛-2(代码片段)

优化PHP代码,将数据库基本操作封装起来。1、MySQLDB.class.php类代码如下:<?php//类名习惯上推荐使用与文件名相似的名字//定义一个mysql连接类,该类可以连接mysql数据库//并实现其单例模式//该类的功能还能够完成如下的mysql基... 查看详情

java开发微信公众号---微信服务器请求消息,响应消息,事件消息以及工具处理类的封装(代码片段)

...,首先我们来分析一下消息类型和返回xml格式及实体类的封装。(一)封装请求信息首先打开微信提供的开发者文档:http://mp.weixin.qq.com/wiki/home/ ,点击左侧的“消息管理”----“接收普通消息”,在右侧我们可以看到微信普... 查看详情

封装ajaxresult,返回后台对象(代码片段)

1.AjaxResult一般使用success/msg即可,但有时需求需要返回后台对象时,需要进行如下操作/***返回结果*/publicclassAjaxResultpublicstaticvoidmain(String[]args)//封装AjaxResult--返回后台数据AjaxResult.me().setSuccess(true).setMsg("恭喜你操作成功").setObje 查看详情

java----工具类(代码片段)

 1. 数据封装  更方便的设置类的成员变量(1)BeanUtils类http://commons.apache.org/proper/commons-beanutils/ (2)使用1.9版本Beanutils的populate方法出错java.lang.NoClassDefFoundError:org/apache/commons/collections/Fast 查看详情

java使用mybatis调用函数返回一个游标结果集(代码片段)

...zRedHatEnterpriseLinux7版本:4.5,6.0文档用途mybatis调用函数返回一个游标时如何接收详细信息1.service实现类代码@Override@TransactionalpublicList<HighgoFunOneRefcursorEn 查看详情

序列化组件二(代码片段)

一、Response二次封装我们想要对响应类进行自定义,以后就用我们自己自定义的响应类#新建response.py文件fromrest_framework.responseimportResponseclassAPIResponse(Response):def__init__(self,status=0,msg=‘ok‘,http_status=None,headers=None,exception=False,**kwargs):... 查看详情