首页 > 其他分享 >封装统一请求状态返回Result

封装统一请求状态返回Result

时间:2023-04-11 11:47:52浏览次数:36  
标签:code 封装 请求 response public ErrorEnum Result msg Response

1、测试数据

public class Test {

    public static void main(String[] args){

        System.out.println("Response.success(ErrorEnum.SUCCESS) = " + Response.success(ErrorEnum.SUCCESS));

        System.out.println("Response.success(ErrorEnum.FAIL) = " + Response.fail(ErrorEnum.FAIL));

        System.out.println("Response.fail() = " + Response.fail());

        System.out.println("Response.success() = " + Response.success());

    }

}

//Response.success(ErrorEnum.SUCCESS) = Response{code=200, msg='请求成功!', model=null}
//Response.success(ErrorEnum.FAIL) = Response{code=500, msg='请求失败!', model=null}
//Response.fail() = Response{code=500, msg='请求失败!', model=null}
//Response.success() = Response{code=200, msg='请求成功!', model=null}

 

2、创建Response类

public class Response<T> {

    private Integer code;

    private String msg;

    private T model;

    private volatile static Response response = null;

    private Response(){}

    public static Response getInstance(){
        if (response == null){
            synchronized (Response.class){
                if (response == null){
                    response =new Response();
                }
            }
        }
        return response;
    }


    public static Response fail(){
        Response response = Response.getInstance();
        response.setCode(ErrorEnum.FAIL.getCode());
        response.setMsg(ErrorEnum.FAIL.getMsg());
        return response;
    }

    public static Response fail(ErrorEnum errorEnum){
        Response response = Response.getInstance();
        response.setCode(errorEnum.getCode());
        response.setMsg(errorEnum.getMsg());
        return response;
    }

    public static <T> Response<T> fail(T data){
        Response<T> response = Response.getInstance();
        response.setCode(ErrorEnum.FAIL.getCode());
        response.setMsg(ErrorEnum.FAIL.getMsg());
        response.setModel(data);
        return response;
    }

    public static Response fail(int code, String msg) {
        Response response = Response.getInstance();
        response.setCode(code);
        response.setMsg(msg);
        return response;
    }

    public static Response success(){
        Response response = Response.getInstance();
        response.setCode(ErrorEnum.SUCCESS.getCode());
        response.setMsg(ErrorEnum.SUCCESS.getMsg());
        return response;
    }

    public static Response success(ErrorEnum errorEnum){
        Response response = Response.getInstance();
        response.setCode(errorEnum.getCode());
        response.setMsg(errorEnum.getMsg());
        return response;
    }

    public static <T> Response<T> success(T data){
        Response<T> response = Response.getInstance();
        response.setCode(ErrorEnum.SUCCESS.getCode());
        response.setMsg(ErrorEnum.SUCCESS.getMsg());
        response.setModel(data);
        return response;
    }


    public Integer getCode() {
        return code;
    }

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

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public T getModel() {
        return model;
    }

    public void setModel(T model) {
        this.model = model;
    }

    @Override
    public String toString() {
        return "Response{" +
                "code=" + code +
                ", msg='" + msg + '\'' +
                ", model=" + model +
                '}';
    }
}

 

标签:code,封装,请求,response,public,ErrorEnum,Result,msg,Response
From: https://www.cnblogs.com/eternality/p/17305706.html

相关文章

  • Charles:解决Charles映射本地时,option请求的跨域问题
    解决方案原因关于为什么会出现该问题,请参考:https://juejin.cn/post/7021077647417409550解决1、查看页面option接口的请求头中带『Access-Control』开头的header2、通过Charles的rewrite功能修改映射时的header3、具体配置如下:4、再次访问后,即可正常映射参考链接ht......
  • http请求
    http+jsonpublicstringPostHttp(stringurl,stringbody,stringtoken){try{HttpWebRequestRequest=(HttpWebRequest)WebRequest.Create(url);Request.ContentType="application/json;charset......
  • 如何用Golang处理每分钟100万个请求
    用Golang处理每分钟100万个请求转载请注明来源:https://janrs.com/9yaq面临的问题在我设计一个分析系统中,我们公司的目标是能够处理来自数百万个端点的大量POST请求。web网络处理程序将收到一个JSON文档,其中可能包含许多有效载荷的集合,需要写入AmazonS3,以便我们的地图还原......
  • 为啥我请求那里都写了异常捕获了,还是报这个错?
    大家好,我是皮皮。一、前言前几天在Python白银交流群【喜靓仔】问了一个Python异常处理的问题,这里拿出来给大家分享下。二、实现过程这里粉丝给的信息十分有限,看问题其实还是挺难的,【论草莓如何成为冻干莓】给了一个指导。尝试进行断点定位问题:然后就找到了问题所在:这......
  • Python Http 请求
    如果要进行客户端和服务器端之间的消息传递,我们可以使用HTTP协议请求HTTP协议请求主要分6种类型(GET和POST较常用)1)GET请求通过URL网址传递信息,可以直接在URL中写上要传递的信息,也可以由表单进行传递(表单中的信息会自动转化为URL地址中的数据,通过URL地址传递)备注:已经取得资源,并......
  • HTTP代理如何解决爬虫请求受限
    网络爬虫在爬取网站的时候,经常会受到限制。当遇到这种情况,大家都会想到用HTTP代理来解决这个问题,那么HTTP代理是如何解决爬虫请求受限呢?爬虫工作任务往往比较大,需要不停地向网站发送请求,这就很容易被目标网站限制访问。如果没有HTTP代理,爬虫客户端的IP很快就会被限制请求,从......
  • 利用 curl 发送 post/get/del/put/patch 请求 PHP
    因为需要在php开发中对接其它接口需要用phpcurl去对接其它接口我把他们封装成函数。这里面是封装好的会自动把data进行转成json格式,同时解码成php数组输出get请求:<?phpfunctiongeturl($url){$headerArray=array("Content-type:application/json;","Acc......
  • SpringBoot处理get请求的路径参数
    当请求方式为get并且使用路径参数的时候,请求格式形如: 后端controller中可以用实体类接收参数,并且不用添加任何注解,当然这个实体类是中的属性是有getter和setter方法的才行,接受方式形如:实体类形如: SpringBoot会自动做处理,将路径参数中的值填充到实体类对应的属性中......
  • ASP.NET Core如何知道一个请求执行了哪些中间件?
    第一步,添加Nuget包引用需要添加两个Nuget包分别是:Microsoft.AspNetCore.MiddlewareAnalysis和Microsoft.Extensions.DiagnosticAdapter,前者是分析记录中间件核心代码实现后者是用来接收日志输出的,由于是用的DiagnosticSource方式记录日志,所以需要使用DiagnosticListener对象的Sub......
  • .NET Core MongoDB数据仓储和工作单元模式封装
    前言     上一章我们把系统所需要的MongoDB集合设计好了,这一章我们的主要任务是使用.NETCore应用程序连接MongoDB并且封装MongoDB数据仓储和工作单元模式,因为本章内容涵盖的有点多关于仓储和工作单元的使用就放到下一章节中讲解了。仓储模式(Repository )带来的好处是一......