当前位置: 首页 > news >正文

枚举类型 表示不同的 HTTP 状态码和相应的错误消息

java web业务中经常用常量来表示不同的 HTTP 响应状态,比如

public enum AppHttpCodeEnum {

    // 成功段0
    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,"需要管理员权限");




    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;
    }
}

这种枚举的使用方式允许你在代码中使用这些常量来表示不同的 HTTP 响应状态,而不需要硬编码状态码和错误消息。这提高了代码的可读性和可维护性,并降低了错误的风险,因为你可以使用这些常量而不是手动输入状态码和消息。例如,你可以使用 AppHttpCodeEnum.SUCCESS.getCode() 来获取成功状态码,使用 AppHttpCodeEnum.SUCCESS.getErrorMessage() 来获取成功消息。并且无需要,实列化,直接写常量就会在加载服务的时候实列化,这个枚举类型 AppHttpCodeEnum 中定义的枚举常量是可以直接使用的,不需要创建新的枚举对象,就像使用静态变量一样

一般配合响应类来进行使用


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;
    }
}

相关文章:

  • 如何做好高校后勤管理?有什么好用的高校后勤管理软件?
  • Python Flask
  • leetCode 169. 多数元素 + 摩尔投票法
  • C# 图解教程 第5版 —— 第13章 数组
  • HTTPS协议:保障网络安全的加密通信协议
  • vue 路由懒加载,图片懒加载,组件懒加载
  • Steger算法实现结构光光条中心提取(python版本)
  • 2023.10.28 关于 synchronized 原理
  • Ubuntu编译 PCL 1.13.1 详细流程
  • 嵌入式系统>嵌入式硬件知识
  • OpenText 安全取证软件——降低成本和风险的同时,简化电子取证流程
  • gradle多模块依赖管理最佳实践
  • 基于STM32的示波器信号发生器设计
  • 软考 系统架构设计师系列知识点之设计模式(6)
  • 阿里云/腾讯云国际站代理:阿里云服务器介绍
  • Docker:数据卷挂载
  • 「实验记录」CS144 Lab0 networking warmup
  • 永恒之蓝漏洞 ms17_010 详解
  • uniapp开发小程序—根据生日日期计算年龄 周岁
  • Web入门笔记
  • html5网站代理/企业培训有哪些方面
  • 服装饰品网站建设/进入百度
  • 个人网站 教程/人力资源培训与开发
  • 十个最好的网站/seo搜索引擎优化实训总结
  • 专业做装修设计的网站/网站收录查询网
  • 快云助手网站建设视频/网络运营团队