在Python FastAPI 中記錄原始HTTP 請求/回應主體
在Python FastAPI 中,您可以記錄特定請求/回應的原始JSON主體透過使用中間件或自訂APIRoute 類別來路由。
選項 1:使用中間件
中間件可讓您在端點處理請求和回應之前對其進行處理。建立中間件:
@app.middleware("http") async def middleware(request: Request, call_next): # ... return await call_next(request)
使用 request.body() 或 request.stream() 方法來使用請求正文。將正文儲存在後台任務中以便稍後記錄。
對於回應正文,請使用自訂程式碼讀取並儲存它:
res_body = b'' async for chunk in response.body_iterator: res_body += chunk
然後您可以在其中記錄請求和回應正文BackgroundTask 以避免影響回應時間。
選項2:使用自訂APIRoute類別
建立自訂APIRoute 類別來處理要求和回應正文:
class LoggingRoute(APIRoute): # ... async def custom_route_handler(request: Request) -> Response: # ... return response
在自訂在路由處理程序中,使用與選項1 類似的請求正文並處理回應正文透過使用此方法,您可以使用限制日誌記錄到特定路由。 APIRouters。
注意事項
以上是如何在 Python FastAPI 中記錄原始 HTTP 請求和回應正文?的詳細內容。更多資訊請關注PHP中文網其他相關文章!