refactor(backend): 统一返回的数据格式
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
from enum import Enum
|
||||
|
||||
|
||||
class ResponseCodeEnum(Enum):
|
||||
"""状态码枚举类"""
|
||||
|
||||
ok = (0, "成功")
|
||||
|
||||
error = (400000, "请求错误")
|
||||
failure = (400000, "请求失败")
|
||||
image_code_err = (400001, "图形验证码错误")
|
||||
throttling_err = (400002, "访问过于频繁")
|
||||
necessary_param_err = (400003, "缺少必传参数")
|
||||
USER_ERR = (400004, "用户名错误")
|
||||
PWD_ERR = (400005, "密码错误")
|
||||
CPWD_ERR = (400006, "密码不一致")
|
||||
MOBILE_ERR = (400007, "手机号错误")
|
||||
SMS_CODE_ERR = (400008, "短信验证码有误")
|
||||
ALLOW_ERR = (400009, "未勾选协议")
|
||||
SESSION_ERR = (401000, "用户未登录")
|
||||
|
||||
forbid = (403000, "权限禁止")
|
||||
jwt_expired = (403001, "Token 已过期,请重新登录")
|
||||
unauthorized = (403003, "Token 已失效,请重新登录")
|
||||
not_found = (404000, "数据未找到")
|
||||
|
||||
SERVER_ERR = (500000, "服务器异常")
|
||||
DB_ERR = (500000, "数据错误")
|
||||
EMAIL_ERR = (500001, "邮箱错误")
|
||||
TEL_ERR = (500002, "固定电话错误")
|
||||
NODATA_ERR = (500003, "无数据")
|
||||
NEW_PWD_ERR = (500004, "新密码错误")
|
||||
OPENID_ERR = (500005, "无效的 openid")
|
||||
PARAM_ERR = (500006, "参数错误")
|
||||
STOCK_ERR = (500007, "库存不足")
|
||||
|
||||
@property
|
||||
def code(self):
|
||||
"""获取状态码"""
|
||||
return self.value[0]
|
||||
|
||||
@property
|
||||
def msg(self):
|
||||
"""获取状态码信息"""
|
||||
return self.value[1]
|
||||
|
||||
@property
|
||||
def status_code(self):
|
||||
return self.value[0] // 1000
|
||||
@@ -0,0 +1,105 @@
|
||||
from pear_admin.common.utils.response_code import ResponseCodeEnum
|
||||
|
||||
|
||||
class JsonResponse:
|
||||
"""
|
||||
JsonResponse 响应体,统一返回前端的格式
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
self._data = None
|
||||
self._code = None
|
||||
self._msg = None
|
||||
self._status_code = None
|
||||
self._error_code = 0
|
||||
self._table_data = {}
|
||||
|
||||
def set_body(self, body):
|
||||
self._data = body
|
||||
return self
|
||||
|
||||
def set_msg(self, msg):
|
||||
self._msg = msg
|
||||
return self
|
||||
|
||||
def set_status_code(self, status_code):
|
||||
# 设置响应状态码
|
||||
self._status_code = status_code
|
||||
return self
|
||||
|
||||
def set_error_code(self, error_code):
|
||||
# 单独设置响应错误码
|
||||
self._error_code = error_code
|
||||
return self
|
||||
|
||||
def set_response_code_enum(self, code):
|
||||
# 设置响应状态码
|
||||
self._set_code(code)
|
||||
return self
|
||||
|
||||
def set_table(self, pages):
|
||||
self.set_body([item.json() for item in pages.items])
|
||||
self._table_data.update(
|
||||
{
|
||||
"count": pages.total,
|
||||
"page": pages.page,
|
||||
"per_page": pages.per_page,
|
||||
}
|
||||
)
|
||||
return self
|
||||
|
||||
def set_table_info(self, pages):
|
||||
self._table_data.update(
|
||||
{
|
||||
"count": pages.total,
|
||||
"page": pages.page,
|
||||
"per_page": pages.per_page,
|
||||
}
|
||||
)
|
||||
return self
|
||||
|
||||
def ok(self):
|
||||
self._set_code(ResponseCodeEnum.ok)
|
||||
return self._res_result()
|
||||
|
||||
def not_found(self):
|
||||
self._set_code(ResponseCodeEnum.not_found)
|
||||
return self._res_result()
|
||||
|
||||
def forbid(self):
|
||||
self._set_code(ResponseCodeEnum.forbid)
|
||||
return self._res_result()
|
||||
|
||||
def error(self):
|
||||
self._set_code(ResponseCodeEnum.error)
|
||||
return self._res_result()
|
||||
|
||||
def failure(self):
|
||||
self._set_code(ResponseCodeEnum.failure)
|
||||
return self._res_result()
|
||||
|
||||
def jwt_expired(self):
|
||||
self._set_code(ResponseCodeEnum.jwt_expired)
|
||||
return self._res_result()
|
||||
|
||||
def _set_code(self, code):
|
||||
# 在内部设置状态码
|
||||
if not self._msg:
|
||||
self._msg = code.msg
|
||||
if not self._status_code:
|
||||
self._status_code = code.status_code
|
||||
self._error_code = code.code
|
||||
return self
|
||||
|
||||
def _res_result(self):
|
||||
data = {"code": self._error_code, "msg": self._msg, "data": self._data}
|
||||
data.update(self._table_data)
|
||||
return data
|
||||
|
||||
def set_code(self, code):
|
||||
self._set_code(code)
|
||||
return self._res_result()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
print(JsonResponse().set_msg("请求过于频繁").ok())
|
||||
Reference in New Issue
Block a user