Rate limiting - co to jest? Definicja pojęcia KSeF
Co to jest rate limiting?
Rate limiting (ograniczanie przepustowości) to mechanizm kontroli dostępu do API, który ogranicza liczbę żądań, które mogą być wysłane w określonym przedziale czasowym. Rate limiting jest używany do ochrony systemu przed przeciążeniem, zapewnienia sprawiedliwego dostępu do zasobów oraz zapobiegania nadużyciom.
W kontekście Krajowego Systemu e-Faktur (KSeF), API 2.0 stosuje precyzyjny mechanizm rate limiting z limitami na sekundę, minutę i godzinę. Limity są różne dla środowisk testowych, demo i produkcji oraz zależą od typu operacji (uwierzytelnianie, wysyłka faktur, pobieranie danych).
System zwraca informacje o limitach w nagłówkach odpowiedzi HTTP (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset), co pozwala aplikacjom na monitorowanie wykorzystania limitów i dostosowanie częstotliwości żądań. Przekroczenie limitów powoduje błąd 429 (Too Many Requests).
Rate limiting w KSeF API
KSeF API 2.0 stosuje precyzyjny mechanizm rate limiting z limitami na sekundę, minutę i godzinę. Limity są: różne dla środowisk (testowe, demo, produkcja), zależne od typu operacji (uwierzytelnianie, wysyłka faktur, pobieranie danych), publicznie udostępniane w dokumentacji API. System zwraca informacje o limitach w nagłówkach odpowiedzi HTTP: X-RateLimit-Limit (maksymalna liczba żądań), X-RateLimit-Remaining (pozostała liczba żądań), X-RateLimit-Reset (czas resetu limitu). Przekroczenie limitów powoduje błąd 429.
Nagłówki rate limiting
System zwraca informacje o limitach w nagłówkach odpowiedzi HTTP: X-RateLimit-Limit - maksymalna liczba żądań w przedziale czasowym, X-RateLimit-Remaining - pozostała liczba żądań w przedziale czasowym, X-RateLimit-Reset - czas resetu limitu w formacie Unix timestamp. Nagłówki są zwracane w każdej odpowiedzi API i pozwalają aplikacjom na monitorowanie wykorzystania limitów. Sprawdzanie nagłówków pozwala na dostosowanie częstotliwości żądań i uniknięcie przekroczenia limitów.
Obsługa błędu 429
Błąd 429 (Too Many Requests) jest zwracany przy przekroczeniu limitów rate limiting. Odpowiedź może zawierać nagłówek Retry-After z sugerowanym czasem oczekiwania przed ponownym żądaniem. Strategie obsługi: poczekaj przed ponownym żądaniem, sprawdź nagłówek Retry-After (jeśli dostępny) dla sugerowanego czasu oczekiwania, zaimplementuj retry z wykładniczym backoffem, dostosuj częstotliwość żądań, aby uniknąć przekroczenia limitów w przyszłości.
FAQ
Jak działają limity rate limiting w KSeF API?
KSeF API 2.0 stosuje precyzyjny mechanizm rate limiting z limitami na sekundę, minutę i godzinę. Limity są różne dla środowisk testowych, demo i produkcji oraz zależą od typu operacji. System zwraca informacje o limitach w nagłówkach odpowiedzi HTTP (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset). Przekroczenie limitów powoduje błąd 429.
Jak odczytywać informacje o limitach?
System zwraca informacje o limitach w nagłówkach odpowiedzi HTTP: X-RateLimit-Limit (maksymalna liczba żądań), X-RateLimit-Remaining (pozostała liczba żądań), X-RateLimit-Reset (czas resetu limitu). Nagłówki są zwracane w każdej odpowiedzi API. Monitorowanie nagłówków pozwala na dostosowanie częstotliwości żądań i uniknięcie przekroczenia limitów.
Co zrobić przy błędzie 429?
Błąd 429 oznacza przekroczenie limitów rate limiting. Poczekaj przed ponownym żądaniem, sprawdź nagłówek Retry-After (jeśli dostępny) dla sugerowanego czasu oczekiwania, zaimplementuj retry z wykładniczym backoffem. Dostosuj częstotliwość żądań, aby uniknąć przekroczenia limitów w przyszłości.
Czy limity są różne dla różnych operacji?
Tak, limity rate limiting mogą się różnić w zależności od typu operacji (uwierzytelnianie, wysyłka faktur, pobieranie danych). Sprawdź dokumentację API dotyczącą limitów dla konkretnych operacji. Monitorowanie nagłówków odpowiedzi pozwala na dostosowanie częstotliwości żądań dla różnych typów operacji.