[python] FastAPI에서 미들웨어 사용하기

FastAPI는 Python으로 빠르고 현대적인 API를 쉽게 구축할 수 있는 웹 프레임워크입니다. 이번 포스트에서는 FastAPI 애플리케이션에 미들웨어를 추가하는 방법에 대해 소개하겠습니다.

미들웨어란?

미들웨어는 HTTP 요청을 처리하기 전이나 후에 실행되는 코드 조각을 말합니다. 흔히 로깅, 인증, 권한 부여, 오류 처리 등에 사용됩니다.

FastAPI 애플리케이션에 미들웨어 추가하기

FastAPI에서 미들웨어를 추가하는 방법은 간단합니다. 먼저 Middleware 클래스를 작성하고, RequestCallNext를 매개변수로 받는 __call__ 메서드를 구현합니다. 이 메서드에서 원하는 작업을 처리한 후 CallNext를 호출하여 요청을 계속 진행시킵니다.

아래는 FastAPI 애플리케이션에 미들웨어를 추가하는 예시입니다.

from fastapi import FastAPI, Request
from fastapi.middleware import Middleware
from fastapi.middleware.trustedhost import TrustedHostMiddleware

app = FastAPI()

class CustomMiddleware:
    def __init__(self, app: FastAPI):
        self.app = app

    async def __call__(self, request: Request, call_next):
        # 요청 처리 전에 실행되는 코드
        print("Processing request")
        response = await call_next(request)
        # 요청 처리 후에 실행되는 코드
        print("Processing response")
        return response

app.add_middleware(TrustedHostMiddleware, allowed_hosts=["*"])
app.add_middleware(CustomMiddleware)

위의 예시에서는 TrustedHostMiddlewareCustomMiddleware를 추가하고 있습니다. CustomMiddleware에서는 요청을 처리하기 전과 후에 각각 “Processing request”와 “Processing response”를 출력하는 간단한 예시를 보여주고 있습니다.

이제 FastAPI 애플리케이션에 미들웨어를 추가하는 방법에 대해 이해했습니다. 여기서 소개한 내용을 바탕으로 미들웨어를 사용하여 프로젝트에 필요한 로깅, 인증, 권한 부여 등의 작업을 수행할 수 있을 것입니다.

FastAPI에 관한 더 자세한 내용은 공식 문서를 참고하시기 바랍니다.