Skip to content

Debug Service

Файл: backend/src/services/debug.rs

Сервис отладки и диагностики. Предоставляет доступ к реестру команд, логам приложения и управлению потоком логов.

Эндпоинты

МетодПутьФункцияОписание
GET/api/debug/registryget_command_registry_svcРеестр команд API
POST/api/debug/logsget_logs_svcПолучить логи с фильтрацией
POST/api/debug/logs/startstart_log_stream_svcЗапустить поток логов
POST/api/debug/logs/stopstop_log_stream_svcОстановить поток логов

Зависимости

  • LOG_BUFFER — глобальный кольцевой буфер логов
  • EventBus — SSE-поток логов в UI
  • Встроенный metadata.json — compile-time метаданные команд

get_command_registry_svc

GET /api/debug/registry

Возвращает реестр всех зарегистрированных API-команд (метаданные, сгенерированные при компиляции).

Возвращает

Result<CommandRegistry, String>

Логика

  1. Загружает встроенный metadata.json (compile-time)
  2. Парсит JSON в CommandRegistry
  3. Содержит: имена команд, HTTP-методы, пути, параметры
plantuml Diagram

get_logs_svc

POST /api/debug/logs

Получает логи из кольцевого буфера с опциональной фильтрацией.

Параметры

ИмяТипОписание
filterOption<LogFilter>Фильтр (уровень, модуль, текст)

Возвращает

Result<Vec<LogEntry>, String>

Логика

  1. Вызывает LOG_BUFFER.get_filtered(&filter)
  2. Возвращает отфильтрованные записи
plantuml Diagram

start_log_stream_svc / stop_log_stream_svc

POST /api/debug/logs/start / POST /api/debug/logs/stop

Управление SSE-потоком логов в реальном времени. Текущая реализация — no-op (заглушка).

plantuml Diagram