728x90
반응형
- 쿼리는 URL에서 ? 후에 나오고 &으로 구분되는 키-값 쌍의 집합
- 경로 매개변수의 일부가 아닌 다른 함수 매개변수를 선언할 때, "쿼리" 매개변수로 자동 해석함
- skip: 값 0을 가집니다.
- limit: 값 10을 가집니다.
from fastapi import FastAPI
app = FastAPI()
fake_items_db = [{"item_name": "Foo"}, {"item_name": "Bar"}, {"item_name": "Baz"}]
@app.get("/items/")
async def read_item(skip: int = 0, limit: int = 10):
return fake_items_db[skip : skip + limit]
1. 선택적 매개변수
- 기본값을 None으로 설정하여 선택적 매개변수를 선언할 수 있음
- 함수 매개변수 q는 선택적이며 기본값으로 None 값이 됨
from typing import Union
from fastapi import FastAPI
app = FastAPI()
@app.get("/items/{item_id}")
async def read_item(item_id: str, q: Union[str, None] = None):
if q:
return {"item_id": item_id, "q": q}
return {"item_id": item_id}
2. 쿼리 매개변수 형변환
- bool 형으로 선언
from typing import Union
from fastapi import FastAPI
app = FastAPI()
@app.get("/items/{item_id}")
async def read_item(item_id: str, q: Union[str, None] = None, short: bool = False):
item = {"item_id": item_id}
if q:
item.update({"q": q})
if not short:
item.update(
{"description": "This is an amazing item that has a long description"}
)
return item
3. 여러 경로/쿼리 매개변수
- 여러 경로 매개변수와 쿼리 매개변수를 동시에 선언할 수 있으며, 특정 순서로 선언할 필요가 없음
from typing import Union
from fastapi import FastAPI
app = FastAPI()
@app.get("/users/{user_id}/items/{item_id}")
async def read_user_item(
user_id: int, item_id: str, q: Union[str, None] = None, short: bool = False
):
item = {"item_id": item_id, "owner_id": user_id}
if q:
item.update({"q": q})
if not short:
item.update(
{"description": "This is an amazing item that has a long description"}
)
return item
4. 필수 쿼리 매개변수
- 경로가 아닌 매개변수에 대한 기본값을 선언할 때, 해당 매개변수는 필수적(Required)이지 않았음
- 특정값을 추가하지 않고 선택적으로 만들기 위해선 기본값을 None으로 설정하면 됨
- 쿼리 매개변수를 필수로 만들려면 기본값을 선언할 수 없음
- needy, 필수적인 str.
- skip, 기본값이 0인 int.
- limit, 선택적인 int.
from typing import Union
from fastapi import FastAPI
app = FastAPI()
@app.get("/items/{item_id}")
async def read_user_item(
item_id: str, needy: str, skip: int = 0, limit: Union[int, None] = None
):
item = {"item_id": item_id, "needy": needy, "skip": skip, "limit": limit}
return item
728x90
반응형
'Web > Python' 카테고리의 다른 글
FastAPI 기초(3) - 경로 매개변수 (0) | 2023.01.30 |
---|---|
FastAPI 기초(2) - Python coding style (1) | 2023.01.26 |
FastAPI 기초(1) - 기본 개념 (0) | 2023.01.26 |
댓글