Перейти до вмісту

GET /api/log/events/?page=1&pageSize=1&direct=desc

Отримує сторінку подій журналу зі стабільною пагінацією.

Авторизація: Bearer.


ПараметрТипОбов’язковийТипове значенняОпис
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.

Курсор забезпечує стабільну послідовну пагінацію без дублікатів і пропусків.

  • Перший запит серії: клієнт передає page=1 і не передає cursor. Сервер починає запит із lastSequence (desc) або oldestSequence (asc).
  • Відповідь містить nextCursor — позицію, з якої слід продовжити.
  • Наступні запити: клієнт передає cursor із попередньої відповіді; page ігнорується.
  • Кінець запиту: nextCursor: null означає, що доступних даних більше немає.
  • Нова серія (у разі переходу на іншу сторінку інтерфейсу): клієнт скидає cursor і знову починає з page=1.

{
"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"
}
}
]
}
ПолеТипОпис
nextCursorчисло|nullКурсор для наступного запиту. null, якщо досягнуто кінця запиту.
eventCountчислоКількість подій у поточному наборі результатів (0..pageSize).
eventsмасивПодії в порядку direct.

Якщо доступних даних більше немає, відповідь містить eventCount: 0, events: [] і nextCursor: null. Це не є помилкою.

ПолеТипОбов’язковеОпис
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"
ПолеТипОпис
messageрядокТекст події
ПолеТипОпис
taskNameрядокНазва завдання
registersрядокОдин рядок у форматі PC=... LR=... SP=... CFSR=... HFSR=... MMFAR=... BFAR=... R0=... R1=... R2=... R3=... R12=... xPSR=...
ПолеТипОпис
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.