A to z całą pewnością nie tylko “zjadałoby” transfer, ale również odbiłoby się czkawką na wydajności aplikacji. Każdej takiej porcji danych przypisywany jest najczęściej numer określający, którą z kolei częścią danych jest. Przykładowo, paginować możemy listę artykułów na blogu lub produkty w sklepie internetowym.
Bardzo dużą zaletą paginacji jest także to, że ogranicza ilość zwróconych na raz danych. Zwiększa dzięki temu szybkość ładowania aplikacji i poprawia czytelność strony.
Nie ma jednej, najlepszej metody paginacji. Wybór właściwej zależy od konkretnego projektu i potrzeb. Najczęściej stosowane metody paginacji to:
paginacja offsetowa – przekazuje do serwera dwa parametry – limit (rozmiar strony) oraz offset (liczbę elementów, które należy pominąć przy wyświetlaniu),
paginacja oparta na kluczu – dodatkowo przekazuje na serwer parametr, który odpowiada także za sortowanie danych. Dzięki temu możemy wyświetlić dane od elementu o podanym kluczu z posortowanej listy,
paginacja na kliknięcie lub przewijanie – otrzymane z serwera dane zawierają informacje, które zawierają wskaźnik pozwalający uzyskać następne lub poprzednie elementy, na przykład wiadomości w komunikatorze.
Stosowanie paginacji API jest kluczowe jeśli mamy do czynienia z dużą ilością danych i zapytań.
Proces działania API możemy podzielić na poszczególne etapy:
przygotowanie przez przeglądarkę (i/lub telefon) danych określających żądaną stronę i/lub ilość elementów, które dołączamy do żądaniawysłanie zapytania,
po otrzymaniu żądania system (wykorzystując informacje w nim zawarte) najczęściej pobiera dane z bazy i na ich podstawie przygotowuje odpowiedź,
system wysyła odpowiedź klientowi,
klient otrzymuje i przetwarza odpowiedź.
Poprzez API pobieramy obiekt zawierający informację na temat strony, jej rozmiar i parametry sortowania. Na tej podstawie mapujemy otrzymane dane, które zostają wyświetlone w przeglądarce.
rozdzielenie interfejsu użytkownika od operacji na serwerze,
zapytanie od klienta musi zawierać komplet informacji. Serwer nie przechowuje stanu sesji użytkownika po swojej stronie,
odpowiedź z serwera zawiera informacje czy cechować informację czy nie, a jeśli tak to w jaki sposób to robić, na jaki okres itp. (temat na osobny artykuł :]),
dane otrzymane w API powinny być niezależne od schematu bazy danych w jakiej są przetrzymywane, oczywiście często zdarza się, że struktura jest podobna, dodatkowo unika się ich nadmiarowości – stosując więcej typów zasobów w przypadku REST lub implementując rozwiązanie takie jak GraphQL (na wzór Facebook-a)
najczęściej przekazywanie danych metodą JSON lub XML.
Wybór metody zastosowania paginacji przy wyświetlaniu danych statycznych (na przykład lista krajów) zależy od sposobu ich prezentacji lub czasem nawet bazy danych. Mamy tu kilka możliwości:
manualna implementacja paginacji – polega na ręcznym tworzeniu podstron i stworzeniu linkowania między nimi. Raczej nikt nie wybiera tej metody, gdyż jest ona pracochłonna i wszelkie zmiany oraz modyfikacje trzeba także robić manualnie,
gotowe narzędzia deweloperskie lub biblioteki – możemy skorzystać z rozwiniętych i sprawdzonych rozwiązań dostarczonych przez inne zespoły deweloperskie lub twórców oprogramowania np. SQLAlchemy,
stworzenie własnego kodu – jest to także dość pracochłonna opcja, czasem wymagana, gdyż daje twórcy pełną dowolność działania i możliwość stworzenia rozwiązania idealnie dopasowanego do konkretnej potrzeby.
Sam proces tworzenia i implementacji paginacji jest podobny zarówno w przypadku danych statycznych jak i przy użyciu API. Różnią je głównie środowisko i warunki w jakich działają. Komunikacja API wymaga konwertowania danych do formatów obsługiwanych przez klienta, czego nie musimy robić przy pracy z danymi statycznymi (klient ma do nich dostęp w określonym formacie). Zaletą paginacji przy użyciu API jest natomiast rozdzielenie warstwy klienta od warstwy serwerowej, co daje nam większą elastyczność oraz pewność, że klient nie wpłynie w żaden sposób na spójność danych.