Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -2,10 +2,11 @@
|
||||
import logging
|
||||
from contextlib import asynccontextmanager
|
||||
|
||||
from fastapi import FastAPI
|
||||
from fastapi import FastAPI, Request
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from fastapi.responses import JSONResponse
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
from fastapi.exceptions import RequestValidationError
|
||||
import json
|
||||
import os
|
||||
|
||||
@@ -131,6 +132,20 @@ os.makedirs(upload_path, exist_ok=True)
|
||||
app.mount("/static/uploads", StaticFiles(directory=upload_path), name="uploads")
|
||||
|
||||
|
||||
# 请求验证错误处理 (422)
|
||||
@app.exception_handler(RequestValidationError)
|
||||
async def validation_exception_handler(request: Request, exc: RequestValidationError):
|
||||
"""处理请求验证错误,记录详细日志"""
|
||||
logger.error(f"请求验证错误 [{request.method} {request.url.path}]: {exc.errors()}")
|
||||
return JSONResponse(
|
||||
status_code=422,
|
||||
content={
|
||||
"detail": exc.errors(),
|
||||
"body": exc.body if hasattr(exc, 'body') else None,
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
# 全局异常处理
|
||||
@app.exception_handler(Exception)
|
||||
async def global_exception_handler(request, exc):
|
||||
|
||||
Reference in New Issue
Block a user