responses.py 707 B

1234567891011121314151617181920212223
  1. """API 响应格式工具,保证成功响应拥有一致的 JSON 结构。"""
  2. from datetime import UTC, datetime
  3. from typing import Any
  4. from fastapi import Request
  5. def utc_server_time() -> str:
  6. """返回毫秒精度的UTC时间,供API包络统一使用。"""
  7. return datetime.now(UTC).isoformat(timespec="milliseconds").replace("+00:00", "Z")
  8. def success_response(request: Request, data: Any) -> dict[str, Any]:
  9. """包装业务数据,并附上当前请求的追踪ID和服务器时间。"""
  10. return {
  11. "success": True,
  12. "data": data,
  13. "meta": {
  14. "request_id": request.state.request_id,
  15. "server_time": utc_server_time(),
  16. },
  17. }