고급 웹프로그래밍
FastAPI(경로 매개변수)
rabbit-jun
2025. 3. 26. 23:06
경로 매개변수
Path
를 사용하여 경로 매개변수에 대해 동일한 유형의 검증 및 메타이터를 선언할 수 있다.
경로 매개변수
경로 매개변수와 유효성 검증
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=10
는item_id
가 10 이상le=20
은item_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가 없어도 됨
반응형