이런 경우에는 다음과 같이 타입 힌트를 int | None = None으로 설정하면 클라이언트가 값을 전달하지 않아도 에러가 나지 않습니다. 여기서 |는 파이썬 3.10 이상에서 사용할 수 있는 타입 힌트 연산자로 ‘또는(or)’을 의미합니다. 따라서 int | None = None은 max_price가 int(정수)일 수도 있고 None일 수도 있으며, 기본값은 None으로 설정한다는 뜻입니다. 즉 값이 주어지면 정수로 처리하고, 주어지지 않으면 None으로 처리합니다.
hello_fastapi/main.py
# 쿼리 파라미터 사용
@app.get("/items")
def read_items_handler(max_price: int | None = None):
return {"max_price": max_price}
만약 특정 쿼리 파라미터를 필수로 요구하고 싶다면, 이전처럼 타입 힌트에 int 타입만 지정하면 됩니다.