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

Как передать на фронтенд большой объем данных

Для передачи больших объемов данных с бэкенда на фронтенд можно использовать несколько подходов:

  1. Пагинация - разбиваем данные на страницы и передаем частями:
python
from fastapi import FastAPI, Query

app = FastAPI()

@app.get("/items/")
async def read_items(skip: int = 0, limit: int = 100):
    return large_data[skip : skip + limit]
  1. Стриминг - постепенная отправка данных:
python
from fastapi import Response
import json

@app.get("/stream-data")
async def stream_data():
    def generate():
        for chunk in large_data:
            yield json.dumps(chunk) + "\n"
    return Response(generate(), media_type="application/json")
  1. Сжатие данных (gzip):
python
from fastapi.middleware.gzip import GZipMiddleware
app.add_middleware(GZipMiddleware)
  1. WebSockets для постоянного соединения и передачи данных частями.

  2. Файловая выгрузка - если данные нужны для скачивания, можно отдать как файл.

Оптимальный выбор зависит от конкретного случая. Для табличных данных лучше пагинация, для логов - стриминг, для экспорта - файловая выгрузка.

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

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

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

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