개발로 자기계발
Published 2022. 12. 22. 09:57
FastAPI BaseModel 생성 - 13 Develop/FastAPI
728x90

1. FastAPI import

from fastapi import FastAPI

app = FastAPI()

 

 
2. BOOKS에 빈 List 생성
from fastapi import FastAPI

app = FastAPI()

BOOKS = []

 

3. 전체 리스트 return 하는 API 정의

from fastapi import FastAPI

app = FastAPI()

BOOKS = []

@app.get("/")
async def read_all_books():
    return BOOKS

 

4. Book class 생성(BaseModel을 상속)

  • 스키마 모델로 pydantic을 사용
  • Books 클래스 내부 필드들이 각각의 Type Hints가 달림
  • id 필드에 UUID
from fastapi import FastAPI
from pydantic import BaseModel
from uuid import UUID

app = FastAPI()

class Book(BaseModel):
    id: UUID
    title: str
    author: str
    description: str
    rating: int

BOOKS = []

@app.get("/")
async def read_all_books():
    return BOOKS

 

5. 추가 내용 정리

pydantic

data validation(유효성 검사)을 위한 python library

class와 attribute를 통하여 data와 모양을 선언할 수 있음

내장 라이브러리이므로 별도 설치가 필요 없음

 

pydantic 장점

새로운 언어를 익힐 필요 없다(IDE에서 쉽게 활용 가능)

request/response를 validate(확인)하는 데에 둘다 좋다

Customizing이 가능하다.

빠르고 python data class랑 부합한다.

 

Data validation​

데이터가 정확하고 유용한지 확인하기 위해 데이터 정제를 거쳤는지 확인하는 프로세스

 

BaseModel

Pyhton의 dict 형태의 데이터를 Pydantic 모델로 변환하는데 사용 됨.

 

UUID

범용 공유 식별자(Universally Unique Identifier) 전세계적으로 고유한 값이다.

request이나 response에 대해서 str로 표현이 가능하다.
대한민국에서 암호화를 안하면 번법

 

728x90
SMALL

'Develop > FastAPI' 카테고리의 다른 글

FastAPI Fields / Data Validation - 15  (0) 2022.12.22
FastAPI Post Request BaseModel - 14  (0) 2022.12.22
FastAPI Path / Query Parameters 정리 - 12  (0) 2022.12.22
FastAPI Delete Request - 11  (0) 2022.12.22
FastAPI Put Request - 10  (0) 2022.12.22
profile

개발로 자기계발

@김잠봉

틀린부분이나 조언이 있다면 언제든 환영입니다:-)