Метод GET /api/v1/get_logs
Краткое описание
Метод позволяет получить логи по id_connector + id_project.
Возвращает список логов (TaskLog) для указанного Коннектора и проекта с возможностью фильтрации по задачам и диапазону времени.
Требуется аутентификация (Depends(check_login_pass)).
Ответ: TasksLogPage.
Параметры (query)
id_connector(string, обязательно) — идентификатор коннектора.id_project(string, обязательно) — идентификатор проекта.id_task(string, опционально) — идентификатор задачи для фильтрации.page_size(int, опционально, по умолчанию 100) — количество записей на странице.offset(int, опционально, по умолчанию 0) — смещение для пагинации.dt_from(datetime, опционально) — фильтр по полю TaskLog.timestamp, >= dt_from (ISO 8601).dt_to(datetime, опционально) — фильтр по полю TaskLog.timestamp, <= dt_to (ISO 8601).ecc_order_by(Literal['ASC', 'DESC'], опционально) — порядок сортировки по полю ecc_dt.
Алгоритм работы метода
Проверяет существование коннектора (connector_exists) и проекта (project_exists). Если не найдены — возвращает 404.
Формирует запрос для подсчета общего количества логов (count_statement).
Формирует основной запрос для выборки логов (statement).
Применяет фильтры:
Если указан
id_task, добавляет условие WHERE TaskLog.id_task == id_task.Если указаны
dt_fromиdt_to, добавляет соответствующие условия по времени.
Применяет пагинацию (LIMIT и OFFSET) и сортировку (ASC или DESC) по полю
ecc_dt.Выполняет запрос и возвращает объект TasksLogPage с полями:
count: общее количество логов, соответствующих фильтрам.offset: смещение.limit: размер страницы.data: список объектов TaskLog.
Успешный ответ (200).
Content-Type:application/jsonТело: объект
TasksLogPage(JSON).
Пример ответа (200)
{ "count": 5, "offset": 0, "limit": 100, "data": [ { "id_log": "550e8400-e29b-41d4-a716-446655440000", "id_connector": "conn-prod-001", "id_project": "proj-123", "id_task": "task-1", "timestamp": "2025-11-14T12:34:56+03:00", "level": "INFO", "message": "Start processing", "ecc_dt": "2025-11-14T12:34:56+03:00" }, { "id_log": "660e8400-e29b-41d4-a716-446655440001", "id_connector": "conn-prod-001", "id_project": "proj-123", "id_task": "task-1", "timestamp": "2025-11-14T12:35:10+03:00", "level": "ERROR", "message": "Failed to read file", "ecc_dt": "2025-11-14T12:35:10+03:00" } // ... другие логи ] }
Параметры
dt_fromиdt_toдолжны быть в формате ISO 8601.Убедитесь, что
id_connectorиid_projectсуществуют перед выполнением запроса.