FastAPI中間件實戰:實現請求日誌與響應時間統計
本文介紹FastAPI中間件的使用,用於統一處理請求/響應邏輯(如日誌、認證等),避免重複代碼。首先需安裝FastAPI和Uvicorn。核心是通過繼承Starlette的BaseHTTPMiddleware,實現dispatch方法處理中間件邏輯:記錄請求開始時間,調用call_next獲取響應,計算耗時,構造包含方法、路徑、IP、耗時、狀態碼的日誌並輸出。將中間件添加到應用需調用app.add_middleware。測試時定義簡單路由,訪問後控制檯輸出日誌。可擴展優化:用logging模塊、記錄請求體、異常處理等。中間件簡化開發,提升代碼可維護性,適用於認證、跨域等通用邏輯。
閱讀全文FastAPI中間件:如何處理跨域、認證等請求攔截
FastAPI中間件是請求/響應攔截器,可在請求進入和響應返回前處理數據,核心作用是統一處理請求與響應,先註冊的中間件先執行,返回時逆序。典型應用:1. 跨域處理(CORS):通過CORSMiddleware實現,配置允許源(開發用“*”,生產指定域名)、憑證、方法和頭信息,解決前端跨域請求問題。2. 認證攔截:通過自定義中間件全局驗證Token(如Bearer Token),驗證失敗返回401,區別於依賴項(依賴項針對特定路由)。注意事項:執行順序、避免過度攔截、區分中間件(通用邏輯)與依賴項(局部邏輯)。
閱讀全文