Annotated 활용 제안 > 그누보드6 이슈

그누보드6 이슈

좋은 댓글과 좋아요는 제작자에게 큰힘이 됩니다.

Annotated 활용 제안 정보

Annotated 활용 제안

본문

정의

Annotated 클래스는 파이썬 타입 힌트와 FastAPI의 의존성 주입 시스템을 세밀하게 제어하기 위한 도구입니다. Annotated을 사용하면 더 많은 정보를 타입 힌트에 추가하고 FastAPI가 이 정보를 활용하도록 할 수 있습니다.

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 순서에 대한 제한이 없음

4. 의존성주입을 세부적으로 커스터마이징 가능

5. API 문서화

  • 그누보드6는 자동 문서화를 사용하지 않으니 상관없을듯..

결론

  • 2, 4번의 활용방법이 적절할 것으로 판단됨.
  • Annotated를 사용하지 않은 현 상태가 가독성이 더 좋은 경우가 많은 것으로 보임.
  • 일부 복잡한 유효성 검사 및 중복된 파라미터의 체크 등에는 적용이 필요할 것으로 판단됨.
    • 토큰
    • 캡챠
    • 일부 파라미터의 유효성검사
추천
0
  • 복사

댓글 0개

90레벨 이상 댓글을 남길 수 있습니다.

© SIRSOFT
현재 페이지 제일 처음으로