Query Parameters

path 파라미터가 아닌 값을 함수의 파라미터로 선언을 하게 되면, FastAPI는 자동적으로 이를 Query 파라미터로 인식을 하게 된다.

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]

여기서 query는 URL에서 ? 이후에 key-value 쌍으로 이루어지고 &로 분리가 된다.

예를 들어서 아래와 같은 URL이 있다고 하면,

<http://127.0.0.1:8000/items/?skip=0&limit=10>

query 파라미터는 다음과 같다.

또한, URL의 일부이므로 자연스럽게 타입은 string이 된다.

하지만, 파이썬 타입을 선언할 경우 해당 타입으로 변환이 된다. (위와 같은 경우는 query 파라미터 skip과 limit에 대한 value를 int로 타입을 지정하였다.)

Default

query 파라미터는 경로에서 고정된 부분이 아니고, 선택적일 수 있기 때문에 기본값을 가질 수 있다. 위 예시를 들었던 곳을 보면 skip=0, limit=10 이라는 기본값을 가지고 있다.

따라서,

<http://127.0.0.1:8000/items/>