Генерация PNG-изображений дашбордов по запросу#
Основной сценарий#
Пользователь отправляет HTTP-запрос на сервер с указанием идентификатора дашборда и, при необходимости, параметров фильтрации (например, дата, подразделение).
Сервер проверяет права доступа пользователя к запрашиваемому дашборду.
При наличии прав сервер формирует URL целевого дашборда во внешней системе визуализации.
Сервер запускает headless-браузер для открытия страницы дашборда.
Дожидается полной загрузки данных и отрисовки графиков.
Выполняет скриншот области дашборда или всей страницы.
Сохраняет изображение во временной папке в формате PNG.
Возвращает пользователю HTTP-ответ с изображением в теле или по ссылке.
Временные файлы удаляются по истечении заданного времени (например, через 10 минут).
Альтернативный сценарий#
Если дашборд содержит динамические элементы (например, анимации), сервер ожидает их стабилизации перед скриншотом.
Если запрашивается часть дашборда, скриншот делается только для указанной области.
При использовании кэширования: если для данного набора параметров недавно был сгенерирован PNG, сервер возвращает закэшированную версию без повторного рендеринга.
Исключительный сценарий#
Если пользователь не имеет прав доступа, возвращается ошибка
403 Forbidden.Если дашборд не существует или указан неверный идентификатор — возвращается
404 Not Found.При тайм-ауте загрузки страницы (например, более 30 секунд) — возвращается
504 Gateway Timeout.При сбое headless-браузера или невозможности сделать скриншот — возвращается
500 Internal Server Errorс записью в лог.Если размер изображения превышает допустимый лимит, оно сжимается с сохранением читаемости или возвращается предупреждение.