Веб-разработка и API
Для чего Pydantic используют на границе API?
Pydantic применяют на недоверенной границе: модель описывает форму запроса или ответа, преобразует поддерживаемые представления, валидирует поля и выдает структурированные ошибки. После проверки код получает типизированный объект и сериализует его по явным правилам. API-модель не обязана совпадать с ORM-сущностью или доменной моделью: отдельные формы не дают внешнему клиенту случайно управлять внутренними полями. На внешней границе дополнительно ограничивают размер, время и права, а ошибки переводят в стабильный контракт ответа.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- Python: техническое собеседование Junior-разработчика · 37:09–37:55Мок-собеседование · Ответ кандидата
Кандидат показывает Pydantic на входной модели пользователя: FastAPI проверяет обязательные поля и их типы и возвращает ошибку при несоответствии.
Что такое ASGI и чем он отличается от WSGI?
WSGI задает синхронный интерфейс Python-веб-приложения вокруг HTTP-запроса и ответа. ASGI описывает асинхронный обмен событиями и поддерживает долгоживущие соединения, включая WebSocket, а также обычный HTTP. ASGI не делает синхронный код неблокирующим: вызов блокирующей библиотеки внутри async def задержит event loop. WSGI-приложение можно адаптировать, но оно сохранит свою модель выполнения. На внешней границе дополнительно ограничивают размер, время и права, а ошибки переводят в стабильный контракт ответа.
Ссылки для изучения
Как middleware обрабатывает запрос и ответ в FastAPI?
HTTP middleware оборачивает следующий слой: выполняет код до call_next(request), получает ответ и выполняет код после него. Так добавляют correlation ID, метрики, общие заголовки и сквозную аутентификационную подготовку. Порядок регистрации определяет вложенность обработки и ошибок. Тяжелая бизнес-логика и блокирующий I/O в middleware увеличивают задержку каждого подходящего запроса; зависимости конкретного endpoint лучше выразить через Depends. На внешней границе дополнительно ограничивают размер, время и права, а ошибки переводят в стабильный контракт ответа.
Ссылки для изучения
Как работает Depends в FastAPI и чем он отличается от middleware?
Depends строит граф зависимостей конкретной операции: получает пользователя, сессию БД или сервис, переиспользует вложенные зависимости и позволяет подменить их в тесте. Зависимость с yield выполняет cleanup после запроса. Middleware охватывает поток запросов на уровне ASGI и подходит сквозным задачам. Проверку, нужную только выбранным endpoint, обычно задают зависимостью, а не условием в глобальном middleware. На внешней границе дополнительно ограничивают размер, время и права, а ошибки переводят в стабильный контракт ответа.
Ссылки для изучения
Когда выбрать WebSocket вместо обычного HTTP API?
WebSocket выбирают для частого двустороннего обмена с малой задержкой, когда сервер должен отправлять события без нового HTTP-запроса. Обычный HTTP проще масштабировать, кэшировать и повторять; keep-alive и HTTP/2 уже уменьшают стоимость многих запросов. WebSocket требует отдельной авторизации соединения, heartbeat, ограничения буферов, обработки разрыва и протокола восстановления пропущенных событий. Для односторонних обновлений иногда достаточно SSE. На внешней границе дополнительно ограничивают размер, время и права, а ошибки переводят в стабильный контракт ответа.
Ссылки для изучения







