Przejdź do głównej zawartości

GET /api/history/temperature/samples/?page=1&pageSize=2&direct=desc

Pobiera stronę zsynchronizowanych próbek historii dla wszystkich czterech kanałów.

Uwierzytelnianie: Bearer.


ParametrTypWymaganeDomyślnieOpis
pageliczbanie*—Numer strony, począwszy od 1. Używany tylko w pierwszym żądaniu serii. Ignorowany, jeśli podano cursor.
pageSizeliczbatak—Liczba próbek na stronę. Prawidłowy zakres: 1..20.
directciąg znakównie"desc"Kierunek sortowania: "asc" — od najstarszych do najnowszych; "desc" — od najnowszych do najstarszych.
cursorliczbanie*—Kursor służący do kontynuowania zapytania. Zobacz poniżej.

*Wymagany jest parametr page albo cursor.

Kursor zapewnia stabilną, sekwencyjną paginację bez duplikatów ani luk.

  • Pierwsze żądanie w serii: klient wysyła page=1 i pomija cursor. Serwer rozpoczyna zapytanie od lastSequence (desc) albo oldestSequence (asc).
  • Odpowiedź zawiera nextCursor, czyli pozycję, od której należy kontynuować.
  • Kolejne żądania: klient wysyła cursor z poprzedniej odpowiedzi; parametr page jest ignorowany.
  • Koniec zapytania: nextCursor: null oznacza, że nie ma więcej dostępnych danych.
  • Nowa seria (podczas przechodzenia do innej strony interfejsu): klient resetuje cursor i ponownie rozpoczyna od page=1.

{
"nextCursor": 1234,
"periodSec": 5,
"lastSequence": 1236,
"samples": [
{
"sequence": 1236,
"channels": [
{ "state": "normal", "temperature": 72.5 },
{ "state": "normal", "temperature": 72.7 },
{ "state": "invalid", "temperature": null },
{ "state": "normal", "temperature": 68.2 }
]
},
{
"sequence": 1235,
"channels": [
{ "state": "normal", "temperature": 72.4 },
{ "state": "normal", "temperature": 72.6 },
{ "state": "invalid", "temperature": null },
{ "state": "normal", "temperature": 68.1 }
]
}
],
"sampleCount": 2
}
PoleTypOpis
nextCursorliczba|nullKursor dla następnego żądania. null, jeśli osiągnięto koniec zapytania.
periodSecliczbaInterwał rejestrowania historii w sekundach.
lastSequenceliczbaBieżący monotoniczny numer sekwencyjny w chwili wysłania żądania.
samplestablicaPróbki w kolejności określonej przez direct (0..pageSize elementów).
sampleCountliczbaLiczba próbek w bieżącym zestawie wyników.

Jeśli nie ma więcej dostępnych danych, odpowiedź zawiera sampleCount: 0, samples: [] oraz nextCursor: null. Nie jest to błąd.

PoleTypOpis
sequenceliczbaNumer sekwencyjny tej próbki.
channelstablica4 elementy (CH1..CH4).
PoleTypOpis
stateciąg znaków"normal", "open", "short", "invalid"
temperatureliczba|nullTemperatura (null, jeśli wartość jest nieprawidłowa)

Scenariusz: wypełnienie okna interfejsu 60 próbkami (3 żądania po 20)

Dział zatytułowany „Scenariusz: wypełnienie okna interfejsu 60 próbkami (3 żądania po 20)”
GET /api/history/temperature/samples/?page=1&pageSize=20&direct=desc
→ { "nextCursor": 1216, "sampleCount": 20, "samples": [...] }
GET /api/history/temperature/samples/?cursor=1216&pageSize=20&direct=desc
→ { "nextCursor": 1196, "sampleCount": 20, "samples": [...] }
GET /api/history/temperature/samples/?cursor=1196&pageSize=20&direct=desc
→ { "nextCursor": null, "sampleCount": 20, "samples": [...] }

Pierwsze żądanie używa page=1; kolejne używają parametru cursor z poprzedniej odpowiedzi.