PRO

Что такое Pydantic и зачем он нужен в FastAPI?

Pydantic — библиотека для описания, проверки и преобразования данных через Python type hints. В FastAPI Pydantic-модели используют для валидации тела запроса, query-параметров и других входных данных, а также для описания структуры ответа и API-документации.
Подробный ответ

Что такое Pydantic

Pydantic позволяет описывать структуру данных обычными Python-классами с аннотациями типов. Затем библиотека проверяет, что входящие данные соответствуют схеме, и преобразует значения там, где это возможно.

Пример модели запроса

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()


class ArticleCreate(BaseModel):
    title: str
    text: str
    is_published: bool = False


@app.post('/articles')
def create_article(article: ArticleCreate):
    return article

FastAPI ожидает JSON, проверяет наличие и типы полей и передаёт в обработчик объект ArticleCreate. Если данные некорректны, клиент получает ответ с ошибкой валидации.

Что даёт Pydantic в FastAPI

  • автоматическую проверку типов и обязательных полей;

  • значения по умолчанию и ограничения полей;

  • понятные ошибки валидации для клиента;

  • схемы данных для OpenAPI, Swagger UI и ReDoc;

  • единый контракт между клиентом и сервером.

Пример ограничения

from pydantic import BaseModel, Field


class UserCreate(BaseModel):
    email: str
    age: int = Field(ge=18, le=120)

Как ответить на собеседовании

Pydantic — это библиотека валидации и сериализации данных на основе type hints. В FastAPI я использую Pydantic-модели для проверки тела запроса и описания ответов; по ним FastAPI также строит документацию API.

Оцени свой прогресс

Честно оцени своё понимание этого вопроса, чтобы мы могли построить твой учебный трек максимально эффективно.
Читать в блоге