Files
fastapi_best_architecture/backend/common/response/response_code.py
Wu Clan 1e54b0ba42 Add plugin info config and interfaces (#601)
* Add plugin info config and interfaces

* Remove test data
2025-05-15 20:50:24 +08:00

161 lines
6.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import dataclasses
from enum import Enum
class CustomCodeBase(Enum):
"""自定义状态码基类"""
@property
def code(self) -> int:
"""获取状态码"""
return self.value[0]
@property
def msg(self) -> str:
"""获取状态码信息"""
return self.value[1]
class CustomResponseCode(CustomCodeBase):
"""自定义响应状态码"""
HTTP_200 = (200, '请求成功')
HTTP_201 = (201, '新建请求成功')
HTTP_202 = (202, '请求已接受,但处理尚未完成')
HTTP_204 = (204, '请求成功,但没有返回内容')
HTTP_400 = (400, '请求错误')
HTTP_401 = (401, '未经授权')
HTTP_403 = (403, '禁止访问')
HTTP_404 = (404, '请求的资源不存在')
HTTP_410 = (410, '请求的资源已永久删除')
HTTP_422 = (422, '请求参数非法')
HTTP_425 = (425, '无法执行请求,由于服务器无法满足要求')
HTTP_429 = (429, '请求过多,服务器限制')
HTTP_500 = (500, '服务器内部错误')
HTTP_502 = (502, '网关错误')
HTTP_503 = (503, '服务器暂时无法处理请求')
HTTP_504 = (504, '网关超时')
# Plugin
PLUGIN_INSTALL_SUCCESS = (200, '插件安装成功请根据插件说明README.md进行相关配置并重启服务')
PLUGIN_UNINSTALL_SUCCESS = (200, '插件卸载成功请根据插件说明README.md移除相关配置并重启服务')
class CustomErrorCode(CustomCodeBase):
"""自定义错误状态码"""
CAPTCHA_ERROR = (40001, '验证码错误')
@dataclasses.dataclass
class CustomResponse:
"""
提供开放式响应状态码,而不是枚举,如果你想自定义响应信息,这可能很有用
"""
code: int
msg: str
class StandardResponseCode:
"""标准响应状态码"""
"""
HTTP codes
See HTTP Status Code Registry:
https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
And RFC 2324 - https://tools.ietf.org/html/rfc2324
"""
HTTP_100 = 100 # CONTINUE: 继续
HTTP_101 = 101 # SWITCHING_PROTOCOLS: 协议切换
HTTP_102 = 102 # PROCESSING: 处理中
HTTP_103 = 103 # EARLY_HINTS: 提示信息
HTTP_200 = 200 # OK: 请求成功
HTTP_201 = 201 # CREATED: 已创建
HTTP_202 = 202 # ACCEPTED: 已接受
HTTP_203 = 203 # NON_AUTHORITATIVE_INFORMATION: 非权威信息
HTTP_204 = 204 # NO_CONTENT: 无内容
HTTP_205 = 205 # RESET_CONTENT: 重置内容
HTTP_206 = 206 # PARTIAL_CONTENT: 部分内容
HTTP_207 = 207 # MULTI_STATUS: 多状态
HTTP_208 = 208 # ALREADY_REPORTED: 已报告
HTTP_226 = 226 # IM_USED: 使用了
HTTP_300 = 300 # MULTIPLE_CHOICES: 多种选择
HTTP_301 = 301 # MOVED_PERMANENTLY: 永久移动
HTTP_302 = 302 # FOUND: 临时移动
HTTP_303 = 303 # SEE_OTHER: 查看其他位置
HTTP_304 = 304 # NOT_MODIFIED: 未修改
HTTP_305 = 305 # USE_PROXY: 使用代理
HTTP_307 = 307 # TEMPORARY_REDIRECT: 临时重定向
HTTP_308 = 308 # PERMANENT_REDIRECT: 永久重定向
HTTP_400 = 400 # BAD_REQUEST: 请求错误
HTTP_401 = 401 # UNAUTHORIZED: 未授权
HTTP_402 = 402 # PAYMENT_REQUIRED: 需要付款
HTTP_403 = 403 # FORBIDDEN: 禁止访问
HTTP_404 = 404 # NOT_FOUND: 未找到
HTTP_405 = 405 # METHOD_NOT_ALLOWED: 方法不允许
HTTP_406 = 406 # NOT_ACCEPTABLE: 不可接受
HTTP_407 = 407 # PROXY_AUTHENTICATION_REQUIRED: 需要代理身份验证
HTTP_408 = 408 # REQUEST_TIMEOUT: 请求超时
HTTP_409 = 409 # CONFLICT: 冲突
HTTP_410 = 410 # GONE: 已删除
HTTP_411 = 411 # LENGTH_REQUIRED: 需要内容长度
HTTP_412 = 412 # PRECONDITION_FAILED: 先决条件失败
HTTP_413 = 413 # REQUEST_ENTITY_TOO_LARGE: 请求实体过大
HTTP_414 = 414 # REQUEST_URI_TOO_LONG: 请求 URI 过长
HTTP_415 = 415 # UNSUPPORTED_MEDIA_TYPE: 不支持的媒体类型
HTTP_416 = 416 # REQUESTED_RANGE_NOT_SATISFIABLE: 请求范围不符合要求
HTTP_417 = 417 # EXPECTATION_FAILED: 期望失败
HTTP_418 = 418 # UNUSED: 闲置
HTTP_421 = 421 # MISDIRECTED_REQUEST: 被错导的请求
HTTP_422 = 422 # UNPROCESSABLE_CONTENT: 无法处理的实体
HTTP_423 = 423 # LOCKED: 已锁定
HTTP_424 = 424 # FAILED_DEPENDENCY: 依赖失败
HTTP_425 = 425 # TOO_EARLY: 太早
HTTP_426 = 426 # UPGRADE_REQUIRED: 需要升级
HTTP_427 = 427 # UNASSIGNED: 未分配
HTTP_428 = 428 # PRECONDITION_REQUIRED: 需要先决条件
HTTP_429 = 429 # TOO_MANY_REQUESTS: 请求过多
HTTP_430 = 430 # Unassigned: 未分配
HTTP_431 = 431 # REQUEST_HEADER_FIELDS_TOO_LARGE: 请求头字段太大
HTTP_451 = 451 # UNAVAILABLE_FOR_LEGAL_REASONS: 由于法律原因不可用
HTTP_500 = 500 # INTERNAL_SERVER_ERROR: 服务器内部错误
HTTP_501 = 501 # NOT_IMPLEMENTED: 未实现
HTTP_502 = 502 # BAD_GATEWAY: 错误的网关
HTTP_503 = 503 # SERVICE_UNAVAILABLE: 服务不可用
HTTP_504 = 504 # GATEWAY_TIMEOUT: 网关超时
HTTP_505 = 505 # HTTP_VERSION_NOT_SUPPORTED: HTTP 版本不支持
HTTP_506 = 506 # VARIANT_ALSO_NEGOTIATES: 变体也会协商
HTTP_507 = 507 # INSUFFICIENT_STORAGE: 存储空间不足
HTTP_508 = 508 # LOOP_DETECTED: 检测到循环
HTTP_509 = 509 # UNASSIGNED: 未分配
HTTP_510 = 510 # NOT_EXTENDED: 未扩展
HTTP_511 = 511 # NETWORK_AUTHENTICATION_REQUIRED: 需要网络身份验证
"""
WebSocket codes
https://www.iana.org/assignments/websocket/websocket.xml#close-code-number
https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent
"""
WS_1000 = 1000 # NORMAL_CLOSURE: 正常闭合
WS_1001 = 1001 # GOING_AWAY: 正在离开
WS_1002 = 1002 # PROTOCOL_ERROR: 协议错误
WS_1003 = 1003 # UNSUPPORTED_DATA: 不支持的数据类型
WS_1005 = 1005 # NO_STATUS_RCVD: 没有接收到状态
WS_1006 = 1006 # ABNORMAL_CLOSURE: 异常关闭
WS_1007 = 1007 # INVALID_FRAME_PAYLOAD_DATA: 无效的帧负载数据
WS_1008 = 1008 # POLICY_VIOLATION: 策略违规
WS_1009 = 1009 # MESSAGE_TOO_BIG: 消息太大
WS_1010 = 1010 # MANDATORY_EXT: 必需的扩展
WS_1011 = 1011 # INTERNAL_ERROR: 内部错误
WS_1012 = 1012 # SERVICE_RESTART: 服务重启
WS_1013 = 1013 # TRY_AGAIN_LATER: 请稍后重试
WS_1014 = 1014 # BAD_GATEWAY: 错误的网关
WS_1015 = 1015 # TLS_HANDSHAKE: TLS握手错误
WS_3000 = 3000 # UNAUTHORIZED: 未经授权
WS_3003 = 3003 # FORBIDDEN: 禁止访问