[python] FastAPI에서 API 버전 관리하기

FastAPI는 강력하고 빠른 웹 프레임워크로, API 개발에 특화되어 있습니다. 이번 포스트에서는 FastAPI를 사용하여 API 버전을 관리하는 방법에 대해 알아보겠습니다.

1. 버전 관리의 필요성

API를 개발하다 보면, API가 계속해서 변경되고 업데이트되어야 할 수 있습니다. 이때, 기존의 클라이언트들이 새로운 업데이트에 영향을 받지 않으면서도 계속 사용할 수 있도록 API 버전 관리가 필요합니다.

2. FastAPI에서의 버전 관리 방법

FastAPI에서는 간단하면서도 유연한 방식으로 API 버전 관리를 할 수 있습니다. 예를 들어, /v1/items/v2/items와 같이 각 버전에 대한 엔드포인트를 만들 수 있습니다.

2.1. 라우터 사용하기

FastAPI에서는 APIRouter 클래스를 사용하여 라우터를 정의할 수 있습니다. 이를 활용하여 버전에 맞는 엔드포인트를 작성할 수 있습니다.

from fastapi import APIRouter

router_v1 = APIRouter(prefix="/v1")
router_v2 = APIRouter(prefix="/v2")

@router_v1.get("/items")
async def get_items_v1():
    ...
    
@router_v2.get("/items")
async def get_items_v2():
    ...

2.2. 버전 라우터 등록하기

라우터를 등록할 때에는 include_router 함수를 사용하여 버전에 따라 적절한 라우터를 등록할 수 있습니다.

from fastapi import FastAPI
from .v1 import router as router_v1
from .v2 import router as router_v2

app = FastAPI()

app.include_router(router_v1)
app.include_router(router_v2)

이렇게 하면 /v1/items 엔드포인트는 get_items_v1 핸들러 함수를, /v2/items 엔드포인트는 get_items_v2 핸들러 함수를 호출하게 됩니다.

3. 버전 관리 시 주의사항

API 버전 관리 시에는 몇 가지 주의사항이 있습니다.

4. 마치며

FastAPI를 사용하여 API 버전 관리를 하는 방법에 대해 알아보았습니다. FastAPI의 강력한 기능을 활용하여 유연하고 확장 가능한 API를 개발할 수 있습니다.