自定义的HTTP状态码

@Getter
public enum CustomHttpStatus {
    /**
     * 用户相关的错误
     */
    USER_NOT_LOGGED_IN(40101, "用户未登录"),
    USER_LOGIN_EXPIRED(40102, "用户登录已过期"),
    USER_NO_PERMISSION(40301, "用户无权限访问资源"),
    /**
     * 数据验证错误
     */
    REQUEST_PARAM_INVALID(40001, "请求参数格式错误"),
    REQUEST_MISSING_PARAM(40002, "请求缺少必要参数"),
    DATA_VALIDATION_FAILED(40003, "数据校验失败"),
    /**
     * 业务逻辑错误
     */
    RESOURCE_ALREADY_EXISTS(40901, "资源已存在"),
    RESOURCE_CONFLICT(40902, "资源冲突,无法进行操作"),
    OPERATION_VIOLATED_RULE(40903, "操作违反业务规则"),
    /**
     * 服务器内部错误
     */
    DATABASE_CONNECTION_FAILED(50001, "数据库连接失败"),
    EXTERNAL_SERVICE_FAILED(50002, "外部服务调用失败"),
    INTERNAL_SERVER_ERROR(50003, "服务器内部未知错误"),
    /**
     * 功能不可用
     */
    FUNCTION_UNDER_DEVELOPMENT(50101, "功能正在开发中"),
    SERVICE_UNAVAILABLE(50301, "服务暂时不可用"),

    /**
     * 支付相关的错误
     */
    PAYMENT_FAILED(40201, "支付失败"),
    PAYMENT_AMOUNT_INCORRECT(40202, "支付金额不正确"),
    PAYMENT_TIMEOUT(40203, "支付超时"),

    /**
     * 文件操作错误
     */
    UNSUPPORTED_FILE_TYPE(41501, "不支持的文件类型"),
    FILE_UPLOAD_FAILED(41502, "文件上传失败"),
    FILE_DOWNLOAD_FAILED(41503, "文件下载失败"),

    ;
    private final int code;
    private final String depiction;

    CustomHttpStatus(int code, String depiction) {
        this.code = code;
        this.depiction = depiction;
    }

}
### 实现自定义HTTP状态码 在 Flask 中实现自定义 HTTP 状态码相对简单。通过返回元组的方式可以轻松指定响应体、状态码以及头信息。 ```python from flask import Flask, jsonify app = Flask(__name__) @app.route('/custom_status') def custom_status(): response = jsonify({'message': 'Custom status code'}) return response, 418, {'Content-Type': 'application/json'} ``` 上述代码展示了如何创建带有特定状态码 `418` 的响应,并设置了相应的头部信息[^2]。 当需要更复杂的逻辑来决定状态码时,可以在视图函数内部根据业务需求动态设置: ```python @app.route('/dynamic_status/<int:code>') def dynamic_status(code): message = f'Returning status {code}' response = jsonify({'message': message}) # Ensure provided code is valid before returning it as a status code. if not (100 <= code < 600): return "Invalid status code", 400 return response, code ``` 此示例允许客户端请求不同的路径参数以获取各种预设的状态码,同时也包含了基本的有效性验证机制防止非法输入。 对于异常处理场景下抛出自定义错误页面或消息的情况,可以通过捕获异常并重定向到专门设计用于展示这些特殊情况下所需内容的路由上完成操作: ```python @app.errorhandler(404) def resource_not_found(e): return jsonify(error=str(e)), 404 ``` 这段代码片段说明了针对未找到资源(`404`)的情形提供JSON格式化的提示给前端使用者。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智汇探长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值