[부스트캠프 AI-Tech] 19주차 Day 3

LKM·2022년 7월 25일
0

✏️학습 정리


3-1. FastAPI(2)

  • FastAPI 기본지식

    • Path Parameter
      • /users/402
      • 서버에 402라는 값을 전달하고 변수로 사용
      • 경로에 존재하는 내용이 없으면 404 Error 발생
      • Resource를 식별해야 하는 경우 사용
    • Query Parameter
      • /users?id=402
      • ID가 402인 사용자 정보를 가져오고 싶은 경우
      • query string 사용 (key, value 쌍으로 이루어지며 &로 연결해 여러 데이터 넘김)
      • 데이터가 없는 경우 빈 리스트가 나옴 —> 추가로 Error Handling이 필요
      • 정렬, 필터링을 해야 하는 경우 사용
    • Request Body
      • 클라이언트에서 API에 데이터를 보낼 때, Request Body 사용
      • 클라이언트 → API: Request Body
      • Request Body에 데이터를 보내고 싶다면 POST Method 사용
    • Response Body
      • API의 Response → 클라이언트: Response Body
      • Decorator의 response_model 인자로 주입 가능
    • Form
      • Form 형태로 데이터를 받고 싶은 경우
      • python-multipart 라이브러리 필요
      • Form 클래스를 사용하면 Request의 Form Data에서 값을 가져옴
    • File
      • File 업로드하고 싶은 경우
      • python-multipart 라이브러리 필요
  • Pydantic

    • Data Validation / Settings Management 라이브러리
    • Type Hint를 런타임에서 강제해 안전하게 데이터 핸들링
    • 기존 Validation 라이브러리보다 빠름
    • 머신러닝 Feature Data Validation으로 활용 가능
    • Validation
      • Python Class 활용시
        • 의미 없는 코드가 많아짐
        • 복잡한 검증 로직엔 Class Method가 복잡해지기 쉬움
      • Dataclass 활용시
        • 인스턴스 생성 시점에서 Validation을 수행하기 쉬움
        • 여전히 Validation 로직들을 직접 작성
      • Pydantic 활용시
        • Python Class, Dataclass 보다 훨씬 간결한 코드
        • 주로 쓰이는 타입들에 대한 Validation이 만들어져 있음
        • Custom Type에 대한 Validation도 쉽게 사용 가능
profile
함께 자라기

0개의 댓글