response.py 942 B

12345678910111213141516171819202122232425262728293031323334
  1. """统一响应格式"""
  2. from typing import Any
  3. def success_response(data: Any = None, message: str = "success") -> dict:
  4. """成功响应"""
  5. from datetime import datetime
  6. return {
  7. "code": 200,
  8. "message": message,
  9. "data": data,
  10. "timestamp": int(datetime.now().timestamp() * 1000)
  11. }
  12. def error_response(code: int = 400, message: str = "error", data: Any = None) -> dict:
  13. """错误响应"""
  14. from datetime import datetime
  15. return {
  16. "code": code,
  17. "message": message,
  18. "data": data,
  19. "timestamp": int(datetime.now().timestamp() * 1000)
  20. }
  21. class AppHTTPError(Exception):
  22. """业务/鉴权错误,由全局 handler 转为统一信封 JSON。"""
  23. def __init__(self, status_code: int, message: str, data: Any = None):
  24. self.status_code = status_code
  25. self.message = message
  26. self.data = data
  27. super().__init__(message)