#
API wersja 3
Wersja 3 w odróżnieniu od poprzednich wersji wprowadza nowy i jednolity sposób stronicowania wyników zapytania.
W tej wersji zostały uwzględnione wszystkie endpointy z poprzednich dwóch wersji.
#
Stronicowanie
W wersji 3 wszystkie wyniki zapytań zwracające listę obiektów są dzielone na strony w jednakowy sposób. Zastosowane zostało stronicowanie według tzw. cursor paging. Oznacza to, że każda kolejna strona wymaga podania identyfikatora ostatniego wiersza z poprzedniej strony.
#
Przykład
Chcemy pobrać listę czynności wykonanych przez pracowników z zakresu dat 2023-01-01 do 2023-05-31. W tym celu należy wykonać zapytanie inicjujące:
GET /v2/activities?from=
2023-01-01&to=2023-05-31
System zwróci pierwszą stronę danych począwszy od zadanej daty początkowej.
{
"items": [ ... ],
"paging":
{
"firstRowId": 123,
"lastRowId": 1123,
"fetched": 1000,
"calculation":
{
"minRowId": 123,
"maxRowId": 123005,
"estimatedPages": 123
}
}
}
Uwaga
Tylko zapytanie inicjujące (czyli zapytanie, do którego nie został podany parametr afterid) zwraca obiekt calculation, który służy do oszacowania wykonania pełnej sekwencji stronicowania.
Do kolejnego zapytania należy dołączyć informacje o indeksach rekordów, gdzie pod afterid podstawiamy wartość z pola lastRowId, a pod beforeid wartość z pola maxRowId.
GET /v2/activities?from=2023-01-01&to=2023-05-31&afterid=
123&beforeid=123005
Po wykonaniu zapytania otrzymamy następujący wynik:
{
"items": [ ... ],
"paging":
{
"firstRowId": 1124,
"lastRowId": 2124,
"fetched": 1000
}
}
Kolejne zapytanie powinno wyglądać następująco:
GET /v2/activities?from=2023-01-01&to=2023-05-31&afterid=
1124&beforeid=123005
Jak widać parametr beforeid nie zmienia się. Podstawiamy tylko afterid.
Uwaga
Należy utrzymywać przekazywanie parametru beforeid. Od tego zależy kiedy system będzie mógł zawęzić wynik wyszukiwanych danych na końcu zadanego zakresu dat.