[python] FastAPI에 사용자 정의 미들웨어 추가하기
FastAPI는 빠르고 현대적인 웹 프레임워크로, 사용자 정의 미들웨어를 추가하여 요청 처리를 수정하거나 로깅, 권한 부여 등의 기능을 추가할 수 있습니다. 이 포스트에서는 FastAPI 애플리케이션에 사용자 정의 미들웨어를 추가하는 방법을 살펴보겠습니다.
미들웨어란?
미들웨어는 애플리케이션의 요청과 응답을 가로채어 어떠한 동작을 추가하거나 수정할 수 있는 소프트웨어 컴포넌트입니다. FastAPI에서 미들웨어를 활용하면 요청 처리의 전/후에 추가적인 작업을 수행할 수 있습니다.
FastAPI 앱에 미들웨어 추가하기
FastAPI 애플리케이션에 사용자 정의 미들웨어를 추가하는 것은 간단합니다. 먼저, starlette.middleware.Middleware
클래스를 사용하여 사용자 정의 미들웨어를 작성합니다.
예를 들어, 다음과 같이 사용자 정의 미들웨어를 작성할 수 있습니다.
from fastapi import FastAPI
from starlette.middleware.base import BaseHTTPMiddleware, Request, Response
class CustomMiddleware(BaseHTTPMiddleware):
async def dispatch(self, request: Request, call_next):
# 요청 전처리 작업
print("Before request processing")
response = await call_next(request)
# 응답 후처리 작업
print("After request processing")
return response
app = FastAPI()
app.add_middleware(CustomMiddleware)
위 예시에서 CustomMiddleware
클래스는 BaseHTTPMiddleware
클래스를 상속하고, dispatch
메서드를 오버라이딩하여 요청 전후에 추가 작업을 수행합니다.
app.add_middleware
를 통해 애플리케이션에 사용자 정의 미들웨어를 추가할 수 있습니다.
결론
FastAPI를 사용하면 사용자 정의 미들웨어를 통해 요청 처리에 추가 기능을 도입할 수 있습니다. 이를 통해 코드를 재사용하거나 애플리케이션의 동작을 유연하게 변경할 수 있습니다.
FastAPI 공식 문서나 스타레틀 공식 문서에서 미들웨어에 대해 더 자세히 알아볼 수 있습니다.