Web/FastAPI

FastAPI BaseModel

알로그 2022. 12. 31. 09:47
반응형

FastAPI BaseModel

유데미 FastAPI 강의 스터디를 진행하면서 내용을 정리해본다.

 

FastAPI - The Complete Course 2023 (Beginner + Advanced)

Dive in and learn FastAPI from scratch! Learn FastAPI, RESTful APIs using Python, SQLAlchemy, OAuth, JWT and way more!

www.udemy.com

 

 

REST USES HTTP REQUEST METHODS

  • GET / => Get all the books
  • GET / <book UUID> => Get specific book
  • PUT / <book UUID> => Update specific book
  • POST / => Create new book
  • DELETE / <book UUID> => Delete specific book

 

BaseModel

pydantic: Data validation and settings management using Python type hints.

Type annotation을 통해 데이터 유효성 검사 목적으로 타입을 강제하고 타입이 유효하지 않은 경우 에러를 발생시킨다.

 

UUID(Universally Unique IDentifier)

고유성을 보장하는 ID로 DB의 primary key로 종종 사용된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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
 
@app.post("/")
async def create_book(book: Book):
    BOOKS.append(book)
    return book
cs

 

Swagger Example Value에 아래와 같이 스키마 양식을 보여준다.

Curl에 -d (data)로 Request Body가 함께 요청됨을 볼 수 있다.

 

author를 제외하고 요청을 보내면 field required 메시지와 함께 422 오류 발생한다.

만약 author를 숫자로 13을 보내면 문자열 “13”으로 변경해서 요청된다.

 
반응형

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

FastAPI Data Validation  (1) 2023.01.15