FastAPI часто хвалят за систему зависимостей. И за дело: Depends — это, наверное, главная фича, которая делает фреймворк не просто «асинхронным Flask», а полноценным инструментом. Но чем больше…
Тестировать FastAPI вроде бы просто: TestClient, пара фикстур, запустил pytest. Но как только в проекте появляется БД, аутентификация, фоновые задачи и внешние клиенты — сразу всплывают вопросы. Где…
Connection pool — одна из тех вещей, которые работают, пока всё хорошо, и взрываются разом, когда плохо. Сервис тихо обслуживает 200 RPS, а потом приходит пик в 800, и Postgres начинает отдавать…
Команда долго сидела на Pydantic v1. Модели там работали, валидаторы прижились, никто не торопился что-то менять. А потом FastAPI начал намекать, что v1 — это уже legacy, и однажды ты приходишь…
В FastAPI есть встроенный BackgroundTasks. Простой, удобный, всегда под рукой. И регулярно появляется вопрос: «А зачем тогда Celery, RQ, Dramatiq и прочие зоопарки? Можно ведь и так». Можно. До…
OpenAPI-схема в FastAPI генерируется бесплатно. Открыл /docs — и вот тебе Swagger UI. Замечательно, пока ты пишешь сам бэкенд. Но потом за неё берутся фронтендеры с генератором клиентов, и…
Переезд с Django на FastAPI — это не просто смена фреймворка. Это смена философии: из тёплого монолита со встроенным ORM, админкой и middleware-ms ты попадаешь в минималистичный микрофреймворк, где…
На каждый питон-сервис рано или поздно встаёт вопрос: что запускать в проде. Был uvicorn в одиночку, стал uvicorn под gunicorn, кто-то ушёл в hypercorn, кто-то на granian. Картина запутанная,…
Кэш в API-сервисе — это та штука, которая кажется простой, пока ты её сам не написал. «Положи результат в Redis на 5 минут». Звучит элементарно. А потом начинается: ключи, инвалидация, сериализация,…
Команда из пяти бэкендеров, две ветки уже неделю в ревью, и кто-то наконец мерджит свою. Через час прилетает второй мердж — и Alembic ругается на multiple heads. CI красный, продовая миграция стоит,…
За последние два года я переписал три проекта на SQLAlchemy 2.0 в async-режиме и собрал почти полный набор граблей. Самое неприятное — поведение, которое в синхронной версии работало по умолчанию, а…
Логирование и observability в Python-сервисе — это история, к которой большинство приходит постфактум. Сначала пишешь print, потом logging.info, потом ставишь Sentry, потом упирается во что-то в…