고급 웹프로그래밍

FastAPI(경로 매개변수)

rabbit-jun 2025. 3. 26. 23:06

경로 매개변수

from fastapi import FastAPI, Path
@app.get("/items/{item_id}")
def get_item(
    item_id: int = Path(..., title="ID of item", ge=10, le=20)
) -> dict[str, int]:
    return {"item_id": item_id}

이 코드는 앞서 배운 것과 거의 동일하지만, item_id를 정의하는 부분에 다양한 메타데이터와 유효성 검사가 함께 적용된 것이 특징이다.

  • title: 제목 메타데이터 값을 선언하는 것으로 자동 생성 문서에서 이 매개변수의 설명 제목으로 사용
  • Path(): FastAPI에게 이 값은 경로에서 받아야 한다는 걸 명시하는 함수이며
    - ge는 greater than을 의미하며 le는 less than or equal을 의미한다.
    • ge=10item_id가 10 이상 le=20item_id가 20 이하라는 의미다
  • ...은 python에서는 Ellipsis 리터럴이라 하며 Python에서 특별한 의미를 가지는 객체
    • 타입 힌팅에서 ... 는 구현을 생략한다는 의미로 사용될 수 있음
    • 추상 클래스에서 특정 메서드가 반드시 구현되어야 함을 나타낼 때 사용됨
    • NumPy 같은 라이브러리에서 다차원 배열을 슬라이싱할 때 사용
  • *ex)
    • item_id: int = Path(..., title="Id of item") ---> item_id`는 반드시 경로에 포함
    • item_id: int = Path(0, title-"Id of item") -----> 경로에서 item_id가 없어도 됨
반응형