100 wywołań na minutę – co zrobić jak limit API BaseLinkera został osiągnięty? [Jaskinia Dev]

100 wywołań na minutę – co zrobić jak limit API BaseLinkera został osiągnięty? [Jaskinia Dev]

Co to jest BaseLinker API?

Wszelkie zewnętrzne podłączenia do systemu BaseLinker są możliwe dzięki udostępnieniu przez BaseLinker specjalnego modułu API, który umożliwia wykonywanie akcji i pobieranie/wysyłanie danych w sposób automatyczny, bez ingerencji człowieka tzw. Interfejs programistyczny (z ang. API application programming interface). Większość osób mających styczność z integracjami pod BaseLinker wie, że elementem niezbędnym do podłączenia jest Token API specjalny klucz, który umożliwia połączenie się do BaseLinkera zewnętrzną integracją za pomocą adresu https://api.baselinker.com/connector.php (dokumentacja jest dostępna pod bardzo zbliżonym adresem https://api.baselinker.com).

FwzNUWKoaIUBhVER9TEfVG99ijwYkWa3oMzLmx3R

BaseLinker udostępnia jeden token API dla użytkownika. Token ten posiada ograniczenie czasowe nie może być użyty więcej niż 100 razy na 1 minutę. Oznacza to, że wszystkie integracje, które używają tego jednego klucza, nie mogą wykonywać łącznie 100 zapytań API. 

Gdzie leży problem? Przy dużych ilościach danych lub próbie osiągnięcia większej responsywności programu, limit 100 zapytań może być co jakiś czas przekraczany. Co się wówczas dzieje? Wszystkie integracje są blokowane, bowiem BaseLinker przez 10 minut wstrzymuje możliwość korzystania z klucza. Oznacza to, że oprogramowanie zewnętrzne nie zmieni statusu zamówienia, nie pobierze listy zamówień do przesłania do systemu sprzedażowego, stany magazynowe nie zostaną zaktualizowane. Na koncie e-mail podanym w BaseLinkerze pojawi się wiadomość:


Tytuł: “BaseLinker: Przekroczono limit zapytań do API BaseLinkera (Konto: …)”  


“  _Szanowny Użytkowniku,_

Na Twoim koncie przekroczony został limit zapytań do API. Dostęp do

API dla konta został tymczasowo zablokowany.

Odblokowanie dostępu do API nastąpi: 22.07.2020 13:50

Limit zapytań wynosi: 100 na minutę

Bardzo prosimy o wprowadzenie poprawek do programu, który wykorzystują

Państwo do integracji z naszym API. Powinien on wykonywać mniej

zapytań (działać optymalniej) lub działać z mniejszą

częstotliwością.

Pozdrawiamy

Zespół BaseLinker.com”



Co zrobić, aby nie przekraczać limitu API? Odpowiedź na to pytanie zależy od liczby i jakości integracji.


Jedna integracja – mały problem 

Przy korzystaniu z pojedynczej integracji lub pakietu integracji jednego producenta zazwyczaj problem nie jest zbyt rozległy.

Jeżeli jesteś autorem integracji, bazując na odpowiedzi z maila BaseLinkera, możesz wprowadzać opóźnienia między wywołaniami. Wymaga to dodatkowych prac programistycznych, których wielkość zależy od stopnia zrównoleglenia i złożoności integracji. 

Jeżeli wykorzystujesz komercyjne rozwiązania integracyjne, warto skontaktować się z twórcami, aby mieć pewność, że ich rozwiązanie jest wyposażone w odpowiednie mechanizmy do kształtowania ruchu, żeby integracja nie przekraczała narzuconych limitów. Wszystkie integracje SellIntegro posiadają wbudowane mechanizmy do kształtowania ruchu w standardzie.


Wiele integracji – duży problem? 

W tym przypadku sprawa jest znacznie bardziej skomplikowana. Integracje różnych producentów, działające niejednokrotnie na różnych maszynach, nie są bowiem wzajemnie synchronizowane każda z nich pracuje, jakby cały limit 100 zapytań na minutę był przypisany tylko jej. Stwarza to oczywiste problemy, gdy wielkość danych lub charakterystyka integracji powoduje, że zbliża się limit 100 zapytań. W tym przypadku uruchomienie kolejnej, nawet małej integracji, może spowodować przekroczenie limitu.


Wspólna Bramka API – Rozwiązanie na przekraczanie limitów API w BaseLinkerze

Wspólnym elementem wszystkich integracji jest bazowanie na wywołaniu https://api.baselinker.com/connector.php. Pomysł wspólnej Bramki API opiera się na przekierowaniu ruchu, który szedłby bezpośrednio do BaseLinkera, na alternatywny adres. Ten nowy adres pełni funkcję pośrednika, który udostępnia te same funkcje, co BaseLinker, ale potrafi spowalniać ruch, zamiast pozwolić na przekroczenie limitu API BaseLinkera.


Jak skorzystać z Bramki API dla BaseLinker aby wyeliminować problem z limitem API?

Wystarczy zamiast https://api.baselinker.com/connector.php użyć specjalnego adresu URL, aby Twoje integracje zaczęły korzystać z bezpłatnego kształtowania ruchu. Masz integrację napisaną przez kogoś innego lub jest to oprogramowanie zewnętrzne? To również nie problem odpowiednie przekonfigurowanie systemu operacyjnego umożliwia korzystanie z Bramki API bez zmian w kodzie aplikacji integracyjnej i jej funkcjonalności. Jeżeli jesteś zainteresowany darmowym dostępem, prosimy o kontakt pod adresem pomoc@sellintegro.com z tematem “Bramka API dla BaseLinker”. Po darmowy dostęp mogą zgłaszać się użytkownicy BaseLinkera oraz twórcy rozwiązań pod BaseLinker.

Rozwiązanie problemu limitu API to podstawowa funkcjonalność, którą udostępniamy za darmo wszystkim chętnym.


Jakie dodatkowe funkcje można uzyskać dzięki Bramce API dla BaseLinker?

W ramach rozszerzonego pakietu planujemy wprodzadzić również następujące funkcjonalności, których nie udostępnia BaseLinker:

  1. Priorytetyzacja wywołań. Dość często aplikacje integracyjne zmieniają status zamówienia po wykonaniu zewnętrznej akcji warto zatem, aby wywołania metody SetOrderStatus były wywoływane przed np. GetOrders metodą, która jest najczęściej pierwszą operacją większego procesu biznesowego;

  2. Ograniczenie dostępu do wybranych funkcji API BaseLinkera obecnie klucz API umożliwia wykonanie dowolnej operacji. Bramka API będzie tworzyć podklucze, które pozwalają na wywołanie jedynie konkretnych metod z określonymi parametrami;

  3. Audyty dostępu obecnie BaseLinker udostępnia jedynie nazwy metod oraz liczbę i godziny wywołań. Bramka API umożliwi dodatkowo adresowi IP, z którego nastąpiły wywołania, graficzne prezentacje ruchu oraz logowanie z dokładnością co do sekundy;

  4. Automatyczne ponawianie zapytań, zapytania cykliczne oraz webhooki

  5. Automatyczne alerty (e-mail, SMS) o przeciążeniu API i operacjach zakończonych niepowodzeniem.


Autor:



Video:
 

Wszystkie komentarze

Leave a Reply