반응형
Annotated란 파이썬에서 타입에 대한 메타데이터를 추가해주는 기능이다.
사용방법은 다음과 같다
Annotated(타입명, 메타데이터)
대충 코드로 바로 들어가보자
from fastapi import FastAPI, Query
app = FastAPI()
@app.get("/items/")
async def read_items(q: str | None = Query(default=None, max_length=50)):
results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]}
if q:
results.update({"q": q})
return results
과거 우리가 쿼리나 패스파라미터에 대해 커스텀하게 다룰 때 Path 클래스나 Query클래스처럼 위와같이 작성하였다.
이를 Anotated를 이용하면 아래와 같이 된다.
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):
results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]}
if q:
results.update({"q": q})
return results
그리고 fastapi는 이제 위에처럼 코드를 작성하기를 권장한다
이유는 다음과 같다
- 가독성에 이점이 있다. 우측에 들어가는 defaultValue는 실제 디폴트 값이다. 반면 이전에 사용하던 defaultValue는 Query(defaultValue=값) 이런식으로 값을 찾아서 읽어야 했다
- FastAPI가 아닌 다른곳에서 함수를 호출해도 문제없이 돌아간다
고로 Annotated를 사용하자
반응형
'Fast API > fastapi배우기' 카테고리의 다른 글
Fast API 배우기 24부 - 라우터 (0) | 2021.11.08 |
---|---|
Fast API 배우기 23부 - SQL 데이터베이스 (3) | 2021.11.08 |
Fast API 배우기 22부 - CORS (0) | 2021.11.05 |
Fast API 배우기 21부 - Middleware (0) | 2021.11.05 |
Fast API 배우기 20부 - Security, authentication 인증 시스템 (2) | 2021.11.04 |
댓글