掃碼關注 StackTraces
覆蓋異步阻塞、Pydantic 校驗、SQLAlchemy 會話、CORS、依賴注入等 FastAPI 開發常見問題。
阻塞事件循環、async/await 誤用
async def 端點跑在事件循環主執行緒,一旦調用 time.sleep 等同步阻塞程式碼,整個服務包括 /health 都會被凍結。
Pydantic、422、響應模型
返回 422 是請求體或參數與 Pydantic 模型對不上;看響應體 detail 裡的 loc、msg、type 就能定位。
Depends、CORS、中間件
CORS 跨域失敗多半是漏加 CORSMiddleware、allow_origins 少了前端源,或通配符與 allow_credentials 衝突。
參數漏寫 Depends() 會被當成 query 參數報 422;yield 依賴要在 finally 裡清理,副作用依賴需關掉緩存。
SQLAlchemy、Session、遷移
每個請求一個 session 並用 yield 依賴保證關閉;在 async 路由裡跑同步 Session 會阻塞事件循環。
把你踩過的坑整理出來,幫助下一個遇到同樣問題的開發者。