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

Какие знаешь варианты оптимизации API

  1. Кэширование – используй Redis или Memcached для хранения часто запрашиваемых данных.

    python
    from django.core.cache import cache
    def get_data(request):
        data = cache.get('cached_data')
        if not data:
            data = expensive_db_query()
            cache.set('cached_data', data, timeout=3600)
        return data
  2. Пагинация – уменьшай объем данных в ответе (limit и offset).

    python
    from rest_framework.pagination import PageNumberPagination
    class CustomPagination(PageNumberPagination):
        page_size = 20
  1. АсинхронностьFastAPI или aiohttp для обработки множества запросов без блокировки.

  2. Сжатие данныхgzip или brotli для уменьшения размера ответа.

  3. Оптимизация БД – индексы, select_related/prefetch_related в Django ORM, избегай N+1 запросов.

  4. Rate Limiting – ограничивай число запросов с одного IP (django-ratelimit).

  5. CDN – для статики и даже API-ответов, если данные не меняются часто.

  6. Валидация на клиенте – уменьшай лишние запросы с неверными данными.

  7. HTTP/2 – уменьшает latency за счет мультиплексирования.

  8. Минимизация логики в API – выноси тяжелые вычисления в фоновые задачи (Celery).

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

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

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

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