GET /api/log/events/?page=1&pageSize=1&direct=desc
Отримує сторінку подій журналу зі стабільною пагінацією.
Авторизація: Bearer.
Параметри запиту
Section titled “Параметри запиту”| Параметр | Тип | Обов’язковий | Типове значення | Опис |
|---|---|---|---|---|
page | число | ні* | — | Номер сторінки, починаючи з 1. Використовується лише в першому запиті серії. Ігнорується, якщо вказано cursor. |
pageSize | число | так | — | Кількість подій на сторінці. Допустимий діапазон: 1..8. |
direct | рядок | ні | "desc" | Напрямок сортування: "asc" — від найстаріших до найновіших; "desc" — від найновіших до найстаріших. |
severityMask | число | ні | усі (31) | Бітова маска рівнів важливості: bit0=DEBUG, bit1=INFO, bit2=WARNING, bit3=ERROR, bit4=FAULT. |
cursor | число | ні* | — | Курсор для продовження запиту. Див. нижче. |
*Потрібно вказати page або cursor.
cursor
Section titled “cursor”Курсор забезпечує стабільну послідовну пагінацію без дублікатів і пропусків.
- Перший запит серії: клієнт передає
page=1і не передаєcursor. Сервер починає запит ізlastSequence(desc) абоoldestSequence(asc). - Відповідь містить
nextCursor— позицію, з якої слід продовжити. - Наступні запити: клієнт передає
cursorіз попередньої відповіді;pageігнорується. - Кінець запиту:
nextCursor: nullозначає, що доступних даних більше немає. - Нова серія (у разі переходу на іншу сторінку інтерфейсу): клієнт скидає
cursorі знову починає зpage=1.
Відповідь 200
Section titled “Відповідь 200”{ "nextCursor": 249, "eventCount": 1, "events": [ { "sequence": 250, "timestamp": "2026-04-16T12:00:00Z", "errorCode": 0, "pending": true, "severity": "WARNING", "dataType": "GENERIC", "generic": { "message": "Channel 1 open circuit" } } ]}Поля відповіді
Section titled “Поля відповіді”| Поле | Тип | Опис |
|---|---|---|
nextCursor | число|null | Курсор для наступного запиту. null, якщо досягнуто кінця запиту. |
eventCount | число | Кількість подій у поточному наборі результатів (0..pageSize). |
events | масив | Події в порядку direct. |
Якщо доступних даних більше немає, відповідь містить eventCount: 0, events: []
і nextCursor: null. Це не є помилкою.
events[]
Section titled “events[]”| Поле | Тип | Обов’язкове | Опис |
|---|---|---|---|
sequence | число | так | Порядковий номер події |
timestamp | рядок | так | ISO 8601 UTC |
errorCode | число | так | Код помилки |
pending | логічний | так | true, якщо подію ще не підтверджено в поточному сеансі живлення |
severity | рядок | так | "DEBUG", "INFO", "WARNING", "ERROR", "FAULT" |
dataType | рядок | так | "GENERIC", "FAULT", "NETWORK" |
generic | об’єкт | ні | Наявне, якщо dataType = "GENERIC" |
fault | об’єкт | ні | Наявне, якщо dataType = "FAULT" |
network | об’єкт | ні | Наявне, якщо dataType = "NETWORK" |
generic
Section titled “generic”| Поле | Тип | Опис |
|---|---|---|
message | рядок | Текст події |
| Поле | Тип | Опис |
|---|---|---|
taskName | рядок | Назва завдання |
registers | рядок | Один рядок у форматі PC=... LR=... SP=... CFSR=... HFSR=... MMFAR=... BFAR=... R0=... R1=... R2=... R3=... R12=... xPSR=... |
network
Section titled “network”| Поле | Тип | Опис |
|---|---|---|
message | рядок | Текст |
remoteIp | рядок | Віддалена IP-адреса |
remotePort | число | Віддалений порт |
localPort | число | Локальний порт |
lwipError | число | Код помилки lwIP |
Сценарій: заповнення сторінки інтерфейсу на 25 подій (5 запитів по 5)
Section titled “Сценарій: заповнення сторінки інтерфейсу на 25 подій (5 запитів по 5)”GET /api/log/events/?page=1&pageSize=5&direct=desc&severityMask=31→ { "nextCursor": 245, "eventCount": 5, "events": [...] }
GET /api/log/events/?cursor=245&pageSize=5&direct=desc&severityMask=31→ { "nextCursor": 240, "eventCount": 5, "events": [...] }
GET /api/log/events/?cursor=240&pageSize=5&direct=desc&severityMask=31→ { "nextCursor": 235, "eventCount": 5, "events": [...] }
GET /api/log/events/?cursor=235&pageSize=5&direct=desc&severityMask=31→ { "nextCursor": 230, "eventCount": 5, "events": [...] }
GET /api/log/events/?cursor=230&pageSize=5&direct=desc&severityMask=31→ { "nextCursor": null, "eventCount": 5, "events": [...] }У першому запиті використовується page=1; у наступних — cursor із попередньої відповіді.
Завдяки cursor сервер не сканує повторно вже прочитані записи,
що особливо важливо під час фільтрування за severityMask.