| Termin | Definicja |
|---|---|
| zbyt częste zapytania do API | Zbyt częste zapytania do API mogą prowadzić do przekroczenia limitów i czasowego zablokowania integracji. Dlaczego API odrzuca zbyt intensywny ruchZbyt częste zapytania do API oznaczają sytuację, w której aplikacja wysyła żądania szybciej, niż pozwalają na to zasady ustalone przez dostawcę usługi. Limit może być liczony na konto, klucz API, adres IP, użytkownika, urządzenie albo konkretny punkt końcowy. Jego wartość zależy od dokumentacji danego API i nie można zakładać, że wszystkie usługi stosują taki sam zakres czasowy lub taką samą liczbę dozwolonych żądań. Ograniczenie chroni serwer przed przeciążeniem, niekontrolowanym działaniem błędnej aplikacji oraz nierównym wykorzystaniem zasobów przez wielu klientów. Przekroczenie limitu jest zwykle sygnalizowane odpowiedzią HTTP 429 Too Many Requests. Serwer może dołączyć nagłówek Objawy widoczne w aplikacji i połączeniu sieciowymOgraniczenie częstotliwości zapytań może powodować chwilowe przerwy w synchronizacji, brak aktualnych danych, powtarzające się komunikaty o niedostępności usługi albo opóźnienie wykonywania operacji. Jeżeli aplikacja reaguje na każdą nieudaną odpowiedź natychmiastowym ponowieniem, powstaje pętla, która zwiększa liczbę żądań i utrwala problem. Szczególnie ryzykowne jest równoległe działanie kilku procesów, wątków, kart przeglądarki lub urządzeń korzystających z tego samego konta albo klucza. W dzienniku warto porównać czas wystąpienia błędów, adres żądania, metodę HTTP, kod odpowiedzi oraz identyfikator klienta. Seria odpowiedzi 429 w krótkich odstępach wskazuje na throttling, czyli aktywne ograniczanie ruchu. Jeżeli połączenia kończą się kodem 408, 502, 503 lub 504, przyczyna może być inna, choć przeciążony system pośredni również może mieć wpływ na wynik. Przydatne jest rejestrowanie czasu rozpoczęcia i zakończenia żądania, ale bez zapisywania kluczy API, haseł i pełnych danych uwierzytelniających. Diagnostyka powinna obejmować także zadania cykliczne, automatyczne odświeżanie oraz funkcje, które wykonują zapytania po każdym otwarciu programu. Ograniczenie liczby żądań bez utraty danychPodstawowym mechanizmem po stronie klienta jest kontrola tempa wysyłania żądań. Aplikacja powinna respektować Nie każde żądanie należy ponawiać automatycznie. Odczyt danych metodą GET jest zwykle łatwiejszy do bezpiecznego powtórzenia, natomiast operacja zmieniająca stan może zostać wykonana dwukrotnie, jeśli pierwsza próba zakończyła się po stronie serwera, lecz odpowiedź nie dotarła do klienta. Dla takich operacji trzeba sprawdzić dokumentację API i używać przewidzianych mechanizmów idempotencji, na przykład klucza idempotencyjnego, jeżeli konkretny dostawca go obsługuje. Warto również wykorzystywać stronicowanie, filtrowanie po dacie zmiany, lokalny cache z określonym czasem ważności oraz synchronizację przyrostową. Pobieranie całego zbioru danych przy każdym odświeżeniu generuje większy ruch niż żądanie wyłącznie rekordów zmienionych od ostatniej poprawnej synchronizacji. Jeżeli limit jest stałym elementem usługi, należy skonfigurować centralny limiter, który uwzględnia wszystkie procesy korzystające z tego samego zasobu. Popularne modele, takie jak token bucket lub leaky bucket, wymagają parametrów ustalonych dla konkretnego API; nie wolno wpisywać przypadkowych wartości jako uniwersalnej recepty. Po wdrożeniu zmian trzeba obserwować liczbę żądań na minutę, odsetek odpowiedzi 429, czas synchronizacji i liczbę operacji zakończonych sukcesem. Takie dane pozwalają sprawdzić, czy problem rzeczywiście został ograniczony, zamiast oceniać działanie wyłącznie na podstawie pojedynczej próby. Sprawdzenie konfiguracji na laptopie lub komputerze PCNa komputerze użytkownika należy ustalić, który program wysyła żądania i czy problem występuje stale, czy tylko podczas określonego zadania. Pomocne jest zamknięcie dodatkowych instancji aplikacji, wyłączenie nadmiarowych automatycznych odświeżeń oraz sprawdzenie harmonogramu synchronizacji. W przeglądarce można przeanalizować żądania w narzędziach deweloperskich, a w aplikacji zainstalowanej lokalnie trzeba sprawdzić jej logi i ustawienia integracji. Samo wielokrotne klikanie przycisku ponowienia nie usuwa przyczyny i może zwiększyć liczbę odrzuconych żądań. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i ich podzespołów, a w ramach diagnostyki może sprawdzić działanie aplikacji, konfigurację połączenia sieciowego oraz logi wskazujące na nieprawidłową pętlę zapytań. Jeżeli limit został nałożony przez zewnętrznego dostawcę, trwałe usunięcie blokady wymaga zastosowania się do jego dokumentacji, zmiany konfiguracji klienta albo kontaktu z administratorem usługi. Serwisowanie komputera może usunąć lokalny problem z programem lub środowiskiem, lecz nie zmienia zasad limitowania obowiązujących po stronie zewnętrznego API. |