Pydantic — библиотека для описания, проверки и преобразования данных через Python type hints. В FastAPI Pydantic-модели используют для валидации тела запроса, query-параметров и других входных данных, а также для описания структуры ответа и API-документации.
Что такое Pydantic и зачем он нужен в FastAPI?
Подробный ответ
Что такое 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 articleFastAPI ожидает 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.
Оцени свой прогресс