{"contents":"import logging\nimport os\nimport traceback\n\nloger_rjson = logging.getLogger(\"rjson\")\n\n\ndef ReJson(code: int, body: [dict, list] = None, msg: str = None, error: str = None, extra: dict = None) -\u003e dict:\n \"\"\"\n 返回格式化的json数据\n :param code: 状态码 int\n :param body: 返回的主体内容,一般为具体的数据\n :param msg: 返回状态码相关的调试信息\n :param error: 出现错误时候,这个参数可以把错误写入日志\n :param extra: # 全局附加数据,字段、内容不定(如等级,经验的变化,可以作为全局的数据存在,区别于某次请求的具体data)\n :return: json格式的返回值\n \"\"\"\n if extra is None:\n extra = {}\n situation = {\n 0: {'code': 0, 'body': body, 'msg': \"success\", \"extra\": extra},\n # 100 开头代表 请求数据有问题\n # 4*** 表示数据库查询结果存在异常\n 1001: {'code': 1001, 'body': body, 'msg': \"请求数据格式存在错误!\", \"extra\": extra}, # 请求数据格式存在错误,一般是数据类型错误\n 1002: {'code': 1002, 'body': body, 'msg': \"请求参数存在错误!\", \"extra\": extra}, # 请求参数存在错误,一般是缺少参数\n 2001: {'code': 2001, 'body': body, 'msg': \"操作失败!\", \"extra\": extra}, # 请求未能正确执行\n 4001: {'code': 4001, 'body': body, 'msg': \"账号或密码错误!\", \"extra\": extra}, # 表示用户没有权限(令牌、用户名、密码错误)\n 4003: {'code': 4003, 'body': body, 'msg': \"禁止访问!\", \"extra\": extra},\n 4004: {'code': 4004, 'body': body, 'msg': \"数据不存在!\", \"extra\": extra},\n 4005: {'code': 4005, 'body': body, 'msg': \"数据库异常!\", \"extra\": extra},\n 4006: {'code': 4006, 'body': body, 'msg': \"数据已存在!\", \"extra\": extra},\n 4007: {'code': 4007, 'body': body, 'msg': \"数据库解密异常!\", \"extra\": extra},\n 5002: {'code': 5002, 'body': body, 'msg': \"服务器错误!\", \"extra\": extra},\n 9999: {'code': 9999, 'body': body, 'msg': \"未知错误!\", \"extra\": extra},\n }\n rjson = situation.get(code, {'code': 9999, 'body': None, 'msg': \"code错误\", \"extra\": {}})\n if body:\n rjson['body'] = body\n if msg:\n rjson['msg'] = msg\n if code != 0:\n stack = traceback.extract_stack()\n project_stack = [frame for frame in stack]\n # 格式化调用栈信息\n formatted_stack = ''.join(traceback.format_list(project_stack))\n # stack_trace = ''.join(traceback.format_stack())\n loger_rjson.warning(f\"\\n{code=}\\n{rjson['body']=}\\n{rjson['msg']=}\\n{rjson['extra']=}\\n{formatted_stack}\")\n if error:\n loger_rjson.error(error, exc_info=True)\n return rjson\n\n\ndef RqJson(rqData):\n \"\"\"\n 进行请求数据验证数据合法性,确实用户以及资格\n 主要根路径下的数据\n :param rqData: 请求的数据\n :return: body的值\n \"\"\"\n userid = rqData.get(\"userid\", \"\") # 用户id\n version = rqData.get(\"version\", \"v1.0\") # api版本\n uidid = rqData.get(\"uidid\", \"qweqrew\") # 唯一设备标识符\n token = rqData.get(\"token\", \"\") # token\n \"\"\"验证数据合法性\"\"\"\n \"\"\"\"\"\"\n body = rqData.get(\"body\", None)\n return body\n\n\nif __name__ == '__main__':\n print(ReJson(0, \"asdf\", \"asdf\"))\n","is_binary":false,"path":"wxdump_linux/api/response.py","ref":""}