[python] FastAPI에서 OpenAPI 3 지원하기

OpenAPI는 API 설계를 위한 스펙인데, 버전 3은 이전 버전보다 많은 기능과 유연성을 제공합니다. FastAPI는 Python에서 빠르고 현대적인 웹 프레임워크인데, 이 글에서는 FastAPI에서 OpenAPI 3를 지원하는 방법에 대해 알아보겠습니다.

1. FastAPI 설치하기

FastAPI를 사용하기 위해 먼저 설치해야 합니다. 가상환경을 사용하는 것이 좋습니다.

pip install fastapi

2. Pydantic 모델 정의하기

FastAPI는 Pydantic을 사용하여 데이터 모델을 정의할 수 있는 기능을 제공합니다.

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: float
    quantity: int

위 코드는 세 가지 필드(name, price, quantity)를 가진 Item 모델을 정의하는 예시입니다.

3. FastAPI 앱 생성하기

FastAPI 앱을 생성하고 라우팅 경로와 처리 함수를 작성해야 합니다.

from fastapi import FastAPI
from .models import Item

app = FastAPI()

@app.post("/items/")
async def create_item(item: Item):
    # Item을 생성하는 비즈니스 로직 작성
    return {"message": "Item created"}

위 코드에서 @app.post("/items/") 데코레이터는 /items/ 경로로 POST 요청을 처리하는 함수를 등록합니다. 처리 함수는 Item 모델을 인자로 받아 비즈니스 로직을 수행한 뒤 응답을 반환합니다.

4. OpenAPI 스키마 생성하기

FastAPI는 자동으로 OpenAPI 스키마를 생성해주는 기능을 제공합니다. "/docs" 엔드포인트로 접속하면 자동 생성된 API 문서를 확인할 수 있습니다.

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/")
async def read_items():
    # 아이템 목록을 조회하는 비즈니스 로직 작성
    return {"message": "Items fetched"}

@app.post("/items/")
async def create_item(item: Item):
    # Item을 생성하는 비즈니스 로직 작성
    return {"message": "Item created"}

5. Swagger UI로 API 문서 확인하기

FastAPI의 기본 설정으로 실행하면 Swagger UI를 통해 API 문서를 확인할 수 있습니다.

uvicorn main:app --reload

위 명령을 실행한 뒤 브라우저에서 http://localhost:8000/docs에 접속하면 Swagger UI로 생성된 API 문서를 확인할 수 있습니다.

6. 마치며

FastAPI는 OpenAPI 3를 지원하고, 자동으로 API 문서를 생성해주는 강력한 기능을 제공합니다. 본 글에서는 FastAPI에서 OpenAPI 3를 지원하는 기본적인 사용법에 대해 알아봤습니다. 더 많은 기능과 세부 설정을 알고 싶다면 공식 문서를 참고해주세요.