from fastapi import FastAPI
from middlewares import CustomMiddleware
app = FastAPI()
app.add_middleware(CustomMiddleware) # 미들웨어 추가
- middlewares.py
from starlette.types import ASGIApp, Receive, Scope, Send class CustomMiddleware: def __init__(self, app: ASGIApp) -> None: self.app = app async def __call__(self, scope: Scope, receive: Receive, send: Send) -> None: # do something await self.app(scope, receive, send) # do something
API 요청이 오면, 미들웨어를 거치고 엔드포인트에 클라이언트의 요청이 온다.
그 사이에 미들웨어에서 처리할 수 있는 처리들이 있다.
예로 파이썬의 structlog 라이브러리를 사용할 때, Trace Id를 uuid로 미들웨어에서 설정할 수 있다.
[참고]
'FastAPI tips' 카테고리의 다른 글
Jinja2 템플릿 활용 (0) | 2024.05.08 |
---|---|
엑셀 다운로드 (Pandas, Workbook) (0) | 2024.05.08 |