Notice
Recent Posts
Recent Comments
Link
SeouliteLab
FastAPI와 Starlette: 빠르고 강력한 웹 프레임워크 비교 본문
FastAPI와 Starlette는 모두 Python으로 작성된 웹 프레임워크로, 빠른 속도와 강력한 기능을 제공합니다. 이번 글에서는 두 프레임워크의 기본적인 사용법과 차이점을 살펴보면서 각각의 장단점을 알아보겠습니다.
예제 1: 간단한 API 엔드포인트 생성하기 (FastAPI)
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"message": "Hello, World!"}
위 예제에서는 FastAPI를 사용하여 간단한 API 엔드포인트를 생성합니다. "/" 경로에 GET 요청이 오면 "Hello, World!" 메시지를 반환합니다.
예제 2: 경로 변수와 쿼리 매개변수 활용하기 (FastAPI)
from fastapi import FastAPI
app = FastAPI()
@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
이 예제에서는 경로 변수와 쿼리 매개변수를 활용하여 동적인 API 엔드포인트를 생성합니다. /items/{item_id}
경로에 대한 GET 요청을 처리하고, 선택적으로 쿼리 매개변수 q
를 받아옵니다.
예제 3: 미들웨어 사용하기 (Starlette)
from starlette.applications import Starlette
from starlette.middleware.base import BaseHTTPMiddleware
app = Starlette()
class CustomMiddleware(BaseHTTPMiddleware):
async def dispatch(self, request, call_next):
response = await call_next(request)
response.headers["X-Custom-Header"] = "Custom Value"
return response
app.add_middleware(CustomMiddleware)
@app.route("/")
async def homepage(request):
return PlainTextResponse("Hello, World!")
이 예제에서는 Starlette를 사용하여 미들웨어를 등록하고, 요청과 응답에 대한 커스텀 처리를 수행합니다. "/" 경로에 대한 요청에 대해 "Hello, World!" 메시지를 반환하면서 응답 헤더에 사용자 정의 헤더를 추가합니다.
'프로그래밍' 카테고리의 다른 글
Python FastAPI: 타입 선언의 중요성과 활용 방법 (0) | 2024.04.01 |
---|---|
Python FastAPI: 등호(=) 대신 콜론(:)을 사용하는 이유 (0) | 2024.04.01 |
파이썬의 UUID 라이브러리: 고유 식별자 생성과 활용 (0) | 2024.04.01 |
파이썬의 ** 연산자: 딕셔너리 언패킹의 강력한 도구 (0) | 2024.04.01 |
파이썬 Pydantic 라이브러리: 데이터 검증 및 설정을 위한 간편한 도구 (0) | 2024.04.01 |