Annotated 활용 제안 정보
Annotated 활용 제안관련링크
본문
정의
Annotated 클래스는 파이썬 타입 힌트와 FastAPI의 의존성 주입 시스템을 세밀하게 제어하기 위한 도구입니다. Annotated을 사용하면 더 많은 정보를 타입 힌트에 추가하고 FastAPI가 이 정보를 활용하도록 할 수 있습니다.
- FastAPI에서도 사용을 권장하고 있다.
- https://fastapi.tiangolo.com/release-notes/#0951
- https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#advantages-of-annotated
Annotated 활용해야하는 이유
- FastAPI 공식사이트 및 블로그에서 참고한 장점들을 정리
1. 기본값 선언이 더 직관적이다.
- 이 부분은 솔직히 공감이 잘 안된다...
# Before kind: str = Query(default="recv"),
After
kind: Annotated[str, Query()] = "recv", 2. 중복코드량 감소
# 데이터베이스 의존성 주입
DBSession = Annotated[Session, Depends(get_db)]
@router.post("/memo_form_update")
async def memo_form_update(
request: Request,
db: DBSession,
...
3. parmater 순서에 대한 제한이 없음
- Annotated를 왜 쓰는 것이 더 좋을까?
- => 이부분도 잘 모르겠다.. 어쨌든 기본값 선언 시 '='를 써야한다.
4. 의존성주입을 세부적으로 커스터마이징 가능
- Annotated 테스트 코드
- 공통된 유효성검사 함수화 및 코드 분리 가능
5. API 문서화
- 그누보드6는 자동 문서화를 사용하지 않으니 상관없을듯..
결론
- 2, 4번의 활용방법이 적절할 것으로 판단됨.
- Annotated를 사용하지 않은 현 상태가 가독성이 더 좋은 경우가 많은 것으로 보임.
- 일부 복잡한 유효성 검사 및 중복된 파라미터의 체크 등에는 적용이 필요할 것으로 판단됨.
- 토큰
- 캡챠
- 일부 파라미터의 유효성검사
추천
0
0
90레벨 이상 댓글을 남길 수 있습니다.
댓글 0개