Python Web & Scripts — Django, FastAPI, скрипты

<b>Pydantic ломает проекты не валидацией, а неявными допущениями в моделях</b>

<b>Pydantic ломает проекты не валидацией, а неявными допущениями в моделях</b>

Частая ошибка — считать модель «контейнером для полей». На деле Pydantic задаёт контракт между JSON, сервисом и БД. Если контракт размыт, потом всплывают сюрпризы: пустая строка вместо None, лишний ключ в payload, тихо склеившийся тип int/str.

Проверь базовые места:
— включай строгую валидацию там, где ошибка дороже автоприведения;
— разделяй входные и выходные схемы, не переиспользуй одну модель везде;
— явно помечай optional-поля, не надейся на «и так понятно»;
— для вложенных структур держи отдельные модели, а не dict на всё подряд.

Ещё один источник боли — дефолты и алиасы. Дефолт должен быть безопасным, а alias — стабильным контрактом, а не косметикой. Если поле приходит из внешнего API, лучше сразу описать его имя, формат и ограничения, чем потом ловить баги на сериализации.

Хорошее правило: модель должна объяснять, какие данные разрешены, а не маскировать чужие ошибки. Тогда Pydantic начинает экономить часы на отладке, а не добавлять их.
Этот пост опубликован в Telegram-канале Python Web & Scripts — Django, FastAPI, скрипты. Подписаться можно по ссылке: @python_web_scripts.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @dumay. Быстрый тест: $20 за канал, $1000 за пакет по сети.