Union을 쓰는 이유
# multi_param.py
from typing import Union
from fastapi import FastAPI
app = FastAPI()
@app.get("/users/{user_id}/items/{item_id}")
def read_user_item(user_id: int, item_id: str, q: Union[str, None] = None, short: bool = False):
item = {"item": 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
q 파라미터가 str 타입의 값을 가질 수도 있고, None 값을 가질 수도 있음을 나타낸다.
'q' 는 Query Parameter에 해당하는데, 만약 q가 주어질 경우 이는 str 타입이고, q가 주어지지 않을 경우 None 타입을 default로 받게 된다.
uvicorn multi_param:app --reload
Python 3.10 이상에서는 Union[str, None]을 str | None으로 대신 표현할 수 있다고 한다.
Python 타입 힌트를 적용함으로써 'mypy' 와 같은 정적 타입 체킹 기능을 사용할 수 있게 된다.
'AboutPython' 카테고리의 다른 글
[파이썬] Global Interpreter Lock (GIL)이란? (0) | 2024.04.13 |
---|---|
[Python] Garbage Collection Tuning (1) | 2024.04.07 |
[파이썬] 파이썬 특정 문자 찾기 ( find, startwith, endwith ) (0) | 2022.06.16 |
[파이썬] readlines(), readline() (0) | 2022.05.10 |
[파이썬] writelines() (0) | 2022.05.10 |