Annotated를 활용해 Type hint에 대한 Metadata를 설정해 보자
정의
typing.Annotated란 해당 타입에 대한 메타데이터를 제공해 준다.
사용법
- 예를 들어 다음과 같이 사용할 수 있다
T1 = Annotated[int, ValueRange(-10, 5)]
T2 = Annotated[T1, ValueRange(-20, 3)]
- Annotated는 첫 번째 인자는 유효한 자료형이어야 한다. T2와 같이 가변인자도 지원한다.
- 또한 위와 같이 여러 개의 형 주석이 지원된다.
Annotated[int, ValueRange(3, 10), ctype("char")]
- Annotated는 최소한 두 개의 인자로 호출해야 한다.
# error
num: Annotated[int]
# Good
num: Annotated[int, "숫자"]
- FastAPI에선 Query와 같이 사용하여 다음과 같이 validate도 할 수 있다.
from typing import Annotated
from fastapi import FastAPI, Query
app = FastAPI()
@app.get("/items/")
async def read_items(q: Annotated[str | None, Query(max_length=50)] = None):
...
참고
1. https://docs.python.org/ko/3.9/library/typing.html#typing.Annotated
2. https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#__tabbed_2_1
'FastAPI' 카테고리의 다른 글
FastAPI - Query Parameter에 Custom Validate 적용하기 (0) | 2023.09.02 |
---|---|
FastApi 사용하면서 기록할 것들 (0) | 2023.08.30 |
QueryParameter (0) | 2023.08.02 |
FastAPI - PathParameter (0) | 2023.08.02 |
FastAPI 시작하기 - 개발환경 세팅 (0) | 2023.08.01 |