의존성 예제
# 공통적으로 사용하는 파라미터 page, size를 재사용할 수 있는 pagination()함수를 만들어서 /books, /movies 경로에서 사용
from fastapi import Query, FastAPI, Depends
app = FastAPI()
def pagination(page: int = Query(10), size: int = Query(10)):
return {"page": page, "size" : size}
@app.get("/books")
def get_books(params: dict = Depends(pagination)):
return params
@app.get("/movies")
def get_movies(params: dict = Depends(pagination)):
return params
이 예제에서 Query의 역할은 쿼리 파라미터를 처리하고 기본값을 지정하는 거야.
Query(10)은 쿼리 파라미터가 없을 때 기본값을 10으로 설정한다는 의미야. page와 size는 각각 페이지 번호와 항목의 개수를 나타내는 쿼리 파라미터를 받는 거야.
즉, 쿼리 파라미터 page와 size를 URL에서 동적으로 받도록 하고, 이 값들을 기반으로 페이지네이션(pagination)을 처리할 수 있도록 돕는 역할을 해.
예시 1: GET /books?page=2&size=20
- page는 2, size는 20으로 설정됨
- 반환된 결과는 { "page": 2, "size": 20 }
예시 2: GET /books
- 쿼리 파라미터가 없으므로 기본값으로 page=10, size=10
- 반환된 결과는 { "page": 10, "size": 10 }
왜 Query가 중요한가?
- Query를 사용하면 URL에서 page, size와 같은 값을 명시적으로 받을 수 있고, Depends를 사용해 이 값을 다른 경로에서 재사용 가능하게 만든 거야.
- pagination() 함수는 page, size를 모두 처리하므로 /books와 /movies에서 공통으로 사용할 수 있어.
간단히 말하자면, Query는 URL에서 전달되는 쿼리 파라미터를 처리하고, 기본값을 설정하는 역할을 해.
'HANCOM AI ACAMEMY > 수업 및 플젝' 카테고리의 다른 글
| debounce 문제해결 (0) | 2025.06.25 |
|---|---|
| 플젝 2주차 : 6월 17일 (0) | 2025.06.17 |
| 파이썬(FastAPI) : 5월 2일 (0) | 2025.05.02 |
| 파이썬(FastAPI) : 4월 30일 (0) | 2025.04.30 |
| 헷갈려서 정리하는 pandas (2) (0) | 2025.04.16 |
댓글