前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >《历史代码分析》2、接口结果封装

《历史代码分析》2、接口结果封装

作者头像
小码农薛尧
发布2025-03-03 15:01:25
发布2025-03-03 15:01:25
2700
代码可运行
举报
文章被收录于专栏:小码农薛尧小码农薛尧
运行总次数:0
代码可运行
本系列《历史代码分析》为工作中遇到具有代表性的代码,已做脱敏处理。今天我们讲一下接口结果封装,制定统一结构的接口返回结果,便于和前端快速对接。

代码如下:

代码语言:javascript
代码运行次数:0
运行
复制
package tech.xueyao.common;


import tech.xueyao.contant.enums.ResponseStatus;
import java.io.Serializable;

publicclass BaseResponse implements Serializable {

private Integer code = 10000;
private String msg = "操作完成";
private Object data;

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 Object getData() {
return data;
 }

public void setData(Object data) {
this.data = data;
 }

public void setStatus(ResponseStatus status) {
this.code = status.code();
this.msg = status.msg();
 }

public BaseResponse(Integer code, String msg) {
this.code = code;
this.msg = msg;
 }

public BaseResponse(ResponseStatus status) {
this.code = status.code();
this.msg = status.msg();
 }

public BaseResponse(Integer code, String msg,Object data) {
this.code = code;
this.msg = msg;
this.data=data;
 }

public BaseResponse() {
 }
}

以下是对这段 Java 代码的分析:

1. 代码概述

这段代码定义了一个名为 BaseResponse 的基础类,它是一个通用的响应类,用于封装接口返回的结果。

2. 成员变量

代码语言:javascript
代码运行次数:0
运行
复制
private Integer code = 10000;
private String msg = "操作完成";
private Object data;
  • code:表示响应的状态码,默认为 10000,。
  • msg:表示响应的消息,默认为 "操作完成",错误信息也放在这个变量中。
  • data:表示响应返回的数据,定义为 Object,可以是任意类型的数据。

3. 构造函数

代码语言:javascript
代码运行次数:0
运行
复制
public BaseResponse(Integer code, String msg) {
    this.code = code;
    this.msg = msg;
}

public BaseResponse(ResponseStatus status) {
    this.code = status.code();
    this.msg = status.msg();
}

public BaseResponse(Integer code, String msg, Object data) {
    this.code = code;
    this.msg = msg;
    this.data = data;
}

public BaseResponse() {
}
  • 提供了多个构造函数,可以创建不同参数的 BaseResponse 对象:
    • BaseResponse(Integer code, String msg):通过状态码和消息创建对象。
    • BaseResponse(ResponseStatus status):通过 ResponseStatus 枚举类创建对象。
    • BaseResponse(Integer code, String msg, Object data):通过状态码、消息和数据创建对象。
    • BaseResponse():无参构造函数,使用默认的状态码和消息。

4. 总结

BaseResponse 类是一个通用的响应类,提高了代码的可读性。同时,使用 ResponseStatus 枚举类来管理响应状态。

补充

ResponseStatus代码如下:

代码语言:javascript
代码运行次数:0
运行
复制
package tech.xueyao.contant.enums;


publicenum ResponseStatus {
 SUCCESS(10000, "成功"),
 INVALID_SIGNATURE(20002, "无效签名"),
 SEND_SMS_MAXIMUM(20003, "短信发送次数达到上限"),
 SEND_SMS_FAIL(20004,"短信发送失败"),
    BAD_REQUEST(40000,"请求有误"),
 BADPARAM(40001, "参数错误"),
 UNAUTHORIZED(40401, "用户未身份认证"),
 NO_PERMISSION(40403, "没有接口权限"),
 NO_PERMISSION_DATE(40404, "没有接口数据权限"),
    NOT_FOUND(40404,"您所访问的资源不存在"),
    Method_NOT_ALLOWED(40405,"方法不被允许"),
 EXCEPTION(50000, "业务处理失败,请稍后再试");

 Integer code;
 String msg;

 ResponseStatus(Integer code, String msg) {
this.code = code;
this.msg = msg;
 }

public Integer code() {
returnthis.code;
 }

public String msg() {
returnthis.msg;
 }
}

如果返回的结果涉及到分页,我们可以使用下面这个类:

代码语言:javascript
代码运行次数:0
运行
复制
package tech.xueyao.common;

import tech.xueyao.contant.enums.ResponseStatus;

publicclass PageResponse extends BaseResponse {
    privateint pageIndex;//当前页数
    privateint pageSize;//分页条数
    privatelong count;//总条数

    public PagedResponse() {
    }

    public PagedResponse(ResponseStatus responseStatus) {
        super(responseStatus);
    }

    public int getPageIndex() {
        return pageIndex;
    }

    public void setPageIndex(int pageIndex) {
        this.pageIndex = pageIndex;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    public long getCount() {
        return count;
    }

    public void setCount(long count) {
        this.count = count;
    }
}

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-03-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小码农薛尧 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 代码概述
  • 2. 成员变量
  • 3. 构造函数
  • 4. 总结
    • 补充
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档