response.py 1.2 KB

1234567891011121314151617181920212223242526272829
  1. from fastapi import FastAPI, Request, Response
  2. from pydantic import BaseModel
  3. from starlette.middleware.base import BaseHTTPMiddleware
  4. from starlette.responses import StreamingResponse, JSONResponse
  5. from typing import Any, Optional,List
  6. import json
  7. class StandardResponse(BaseModel):
  8. success: bool
  9. error_code: Optional[int] = None
  10. error_msg: Optional[str] = None
  11. records: Optional[Any] = None
  12. data: Optional[Any] = None
  13. # class ResponseFormatterMiddleware(BaseHTTPMiddleware):
  14. # async def dispatch(self, request: Request, call_next):
  15. # response = await call_next(request)
  16. # if response.status_code >= 200 and response.status_code < 300:
  17. # try:
  18. # response_body = response.body.decode('utf-8')
  19. # response_data = {"code": SUCCESS_CODE, "message": SUCCESS_MESSAGE, "data": response_body}
  20. # response.body = str(response_data).encode('utf-8') # 注意这里需要根据实际情况调整
  21. # response.media_type = 'application/json'
  22. # except Exception as e:
  23. # print(f"Error formatting response: {e}")
  24. # return response