FastAPI 경로 변수 및 쿼리 변수 활용

gclee·2024년 4월 30일

FastAPI

목록 보기
5/7
post-thumbnail

경로 변수

경로 변수는 URL의 일부분으로, 특정 리소스를 지정하는데 사용됩니다. FastAPI에서 경로 변수를 함수의 인자로 전달하면, 해당 변수는 자동으로 URL 경로의 일부로 인식됩니다.

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id}

위 예제에서 {item_id}는 경로 변수로, URL에서 /items/1과 같이 접근하면 item_id가 1으로 설정되어 반환됩니다.

쿼리 매개변수

쿼리 매개변수는 URL의 ? 이후에 위치하며, 키-값 쌍으로 제공됩니다. FastAPI에서는 함수의 인자를 통해 쿼리 매개변수를 쉽게 처리할 수 있습니다.

필수 쿼리 매개변수

@app.get("/items/")
async def read_items(required_query: int):
    return {"required_query": required_query}

위 코드에서 required_query는 필수 쿼리 매개변수로 설정됩니다. 매개변수 없이 요청을 보내면 에러가 발생합니다.

쿼리 매개변수 기본값

pythonCopy code
@app.get("/items/default/")
async def read_items_with_default(optional_query: int = 5):
    return {"optional_query": optional_query}

optional_query에 기본값 5를 제공하여, 요청 시 해당 매개변수를 생략할 수 있습니다. 매개변수가 제공되지 않으면 기본값 5가 사용됩니다.

선택적 쿼리 매개변수

pythonCopy code
from typing import Optional

@app.get("/items/optional/")
async def read_optional_items(optional_query: int | None = None):
    if optional_query:
        return {"optional_query": optional_query}
    return {"message": "No query parameter provided"}

optional_query 매개변수는 선택적으로 제공될 수 있으며, 제공되지 않을 경우 None을 기본값으로 사용합니다. 이를 통해 매개변수의 존재 유무에 따라 다른 처리를 수행할 수 있습니다.

0개의 댓글