135 вопросов по FastAPI с технических собеседований
135 вопросов1634 компании353 технологии
Что проверяют на интервью
Как устроена подборка
На странице собраны вопросы по FastAPI — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: backend, api, fastapi.
FastAPI — ASGI-фреймворк для API, использующий типовые аннотации для описания входных данных, валидации и документации. Dependency injection передаёт обработчикам нужные зависимости.
Запрос проходит через middleware к роутингу, затем обработчик FastAPI разбирает вход и разрешает dependencies с валидацией параметров, после чего вызывает endpoint. Ответ идёт обратно через middleware.
Выберите вариант с устойчивым хранилищем статуса и проверкой повторов заданий. Память FastAPI-процесса теряется при рестарте и не разделяется автоматически между workers.
threading.local() хранит состояние по потоку, а несколько async-запросов работают в одном потоке и могут перезаписать request_id друг друга. ContextVar разделяет значения по контексту задачи.
Нужно атомарно проверить и уменьшить лимит в том месте, где он хранится: командой/скриптом Redis для общего состояния либо asyncio.Lock для одного процесса. Измерение ожидания полезно дополнительно.
Если это обработчики обычного def и в thread pool есть два свободных места, оба запроса завершатся примерно за 5 секунд, а не последовательно за 10. Точное время зависит от загрузки.
В декораторе ошибочны wrap, time.now и return в finally. Нужно functools.wraps, монотонный таймер и логирование без подмены результата; декоратор должен быть определён до применения.
Не передавайте request-scoped DB-сессию в долгую фоновую задачу. Передайте file_id, а сессию создавайте внутри задачи; для пятиминутного парсинга надёжнее отдельная очередь и worker.
В Dockerfile ошибочен COPY: у него не указан путь назначения. Задайте рабочий каталог, скопируйте приложение и запускайте uvicorn из каталога, где доступен модуль main.
Чётко разделите самостоятельную реализацию FastAPI-сервиса, deployment и последующую поддержку. Назовите проект и артефакты, за которые отвечали лично.