Встречается на собеседованиях • сегодня

Как оптимизировать работу FastAPI

  1. Используйте асинхронные функции (async def) для эндпоинтов, особенно при работе с I/O (запросы к БД, API и т.д.). Это уменьшает блокировку событийного цикла.
python
@app.get("/items/{item_id}")
async def read_item(item_id: int):
    return await fetch_item_from_db(item_id)
  1. Кеширование (например, fastapi-cache2 или Redis) для часто запрашиваемых данных.
  1. Оптимизация зависимостей – избегайте тяжелых вычислений в Depends().

  2. GzipMiddleware для сжатия ответов:

python
from fastapi.middleware.gzip import GZipMiddleware
app.add_middleware(GZipMiddleware)
  1. Pydantic модели – используйте response_model для валидации и сериализации ответов.

  2. Статика через StaticFiles вместо отдельных эндпоинтов.

  3. Ленивая загрузка – импортируйте тяжелые модули только при необходимости.

  4. Профилирование (cProfile, pyinstrument) для поиска узких мест.

  5. Уменьшайте количество запросов к БД – используйте JOIN или select_related в ORM.

  6. HTTP/2 и UVICORN с --workers N для параллелизма.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы