Kodeloka
  1. Kodeloka
  2. Kelas FastAPI
  3. Materi

Data & Models ยท Modul 5 dari 24

Request Body & Pydantic Schemas

Mendefinisikan skema data masukan JSON dengan Pydantic v2 BaseModel, Field validation, dan skema bertingkat.

๐ŸŽฏ Poin-Poin Utama Modul Ini:
  • Mewarisi pydantic.BaseModel untuk mendefinisikan skema JSON input
  • Field(gt=0, min_length=3) untuk aturan validasi atribut
  • Parsing dan konversi tipe JSON otomatis

๐Ÿ“ฆ Validasi Skema JSON dengan Pydantic

Dalam Seri Corey Schafer Part 5, pembuatan postingan baru dilakukan dengan menerima Request Body berupa JSON bertipe Pydantic model.

๐Ÿ’ป Kode Pydantic Model dengan Field Rules

schemas.py
from pydantic import BaseModel, Field

class PostBase(BaseModel):
    title: str = Field(..., min_length=3, max_length=100)
    content: str
    published: bool = True
    rating: int | None = Field(None, ge=1, le=5)

class PostCreate(PostBase):
    pass

from fastapi import FastAPI
app = FastAPI()

@app.post("/posts")
def create_post(post: PostCreate):
    return {"status": "created", "data": post.model_dump()}