构造脱敏的统一错误响应 (body, http_status)。
(code, message=None, status=None, details=None)
| 26 | |
| 27 | |
| 28 | def error_response(code, message=None, status=None, details=None): |
| 29 | """构造脱敏的统一错误响应 (body, http_status)。""" |
| 30 | default_status, default_msg = ERROR_CODES.get(code, (500, "服务内部错误")) |
| 31 | body = { |
| 32 | "status": "error", |
| 33 | "code": code, |
| 34 | "message": message or default_msg, |
| 35 | "request_id": uuid.uuid4().hex[:12], # 便于把客户端报错关联到服务端日志 |
| 36 | } |
| 37 | if details is not None: |
| 38 | body["details"] = details |
| 39 | return jsonify(body), (status or default_status) |
| 40 | |
| 41 | |
| 42 | def register_error_handlers(app): |
no test coverage detected