Axivox Przewodnik użytkownika
Powrót do strony

Zapytanie API

Odpytuje zewnętrzne oprogramowanie przez jego interfejs webowy w trakcie połączenia, zapisuje odpowiedź w zmiennych i przechodzi na wyjście Błąd, gdy tylko trwa to zbyt długo albo się nie powiedzie.

W skrócie

WyjściaOK i Błąd
PolaMetoda, Timeout, URL, Nagłówki (1/linia), Treść (POST/PUT), oraz tabela ekstrakcji Zmienna i Ścieżka JSON
MetodyGET, POST, PUT, DELETE
Proponowany timeout2, 3, 5, 8 albo 10 s, domyślnie 5 s
Rzeczywiście stosowany timeoutmaksymalnie 8 sekund, nawet jeśli wybierzesz 10
Czas oczekiwania na nawiązanie połączenia2 sekundy
Przekierowania śledzone2
Bezpiecznik5 kolejnych niepowodzeń na tym samym serwerze otwiera obwód na 30 sekund

Tekst pomocy wyświetlany w oknie to: „Odpytuje API HTTP i wyodrębnia wartości JSON do zmiennych. Jeśli API zawiedzie albo przekroczy timeout, brane jest wyjście „Błąd”. Użyj {{zmienna}} w URL, nagłówkach i treści.”

Jak to działa

Czym jest API

API to wejście serwisowe oprogramowania: adres webowy, który odpytuje inny program, i który odpowiada nie stroną do przeczytania, ale danymi ustrukturyzowanymi. Większość odpowiada w formacie JSON, który porządkuje informacje według nazwy, na wzór formularza: {"client": {"nazwa": "Kowalski", "status": "premium"}}.

Moduł wysyła zapytanie, odczytuje odpowiedź i wyodrębnia z niej to, co cię interesuje.

Zmienne w zapytaniu

URL, Nagłówki i Treść przyjmują zmienne {{zmienne}}, zastępowane tuż przed wysłaniem. Tak odpytuje się serwis o aktualnie prowadzone połączenie: https://api.przyklad.com/klient/{{caller}}.

Ekstrakcja

Odpowiedź rzadko warto brać w całości. Dolna tabela wiąże Ścieżkę JSON z nazwą Zmiennej. Ścieżka czyta się z zewnątrz do wewnątrz, poziomy oddzielone kropkami: klient.nazwa szuka nazwa wewnątrz klient. Lista jest przeglądana według swojej pozycji, zaczynając od zera: 0.nazwa oznacza nazwę pierwszego elementu.

Ścieżka pozostawiona pusta zwraca całą odpowiedź: to właśnie potrzebne, gdy serwis odpowiada bezpośrednio liczbą albo słowem, bez żadnej struktury dookoła.

Ścieżka, która donikąd nie prowadzi, daje pustą zmienną, bez błędu. Wyjście OK i tak zostaje użyte, ponieważ serwis rzeczywiście odpowiedział.

Kiedy używane jest wyjście Błąd

Bezpiecznik

Serwis, który jest niedostępny, nie powinien spowalniać wszystkich twoich połączeń. Po 5 kolejnych niepowodzeniach wobec tego samego serwera, moduł przestaje go odpytywać przez 30 sekund: wyjście Błąd zostaje użyte natychmiast, bez czekania na upływ czasu i bez wysyłania zapytania. Pierwszy sukces zeruje licznik.

To zabezpieczenie, i tłumaczy ono zaskakującą obserwację: w ciągu tych trzydziestu sekund połączenie odchodzi w Błąd błyskawicznie, mimo że serwis może już działać.

Co należy uzupełnić

PoleCzego się oczekujeJeśli zostawisz puste
MetodaGET do odczytu, POST albo PUT do wysyłania, DELETE do usuwaniaGET
Timeoutczas oczekiwania, ograniczony do 8 s maksymalnie przy wykonaniu5 s
URLpełny adres, przyjmujący zmienne {{zmienne}}wyjście Błąd zostaje użyte, bez wysłania jakiegokolwiek zapytania
Nagłówki (1/linia)jeden nagłówek na linię, na przykład klucz uwierzytelniającyżaden nagłówek nie zostaje wysłany
Treść (POST/PUT)wysyłana zawartość, zazwyczaj JSONbrak zawartości; treść jest i tak ignorowana w GET
Zmienna ekstrakcjinazwa, pod którą zapisać odczytaną wartośćlinia zostaje zignorowana
Ścieżka JSON ekstrakcjiścieżka do wartości, na przykład klient.nazwacała odpowiedź zostaje zapisana w zmiennej

Przycisk Dodaj ekstrakcję tworzy linię, Usuń usuwa swoją, Zapisz zamyka okno.

Jak to zrobić krok po kroku

  1. Zdobądź od swojego dostawcy adres do odpytania, sposób uwierzytelnienia i przykład odpowiedzi. Bez przykładu odpowiedzi nie napiszesz ścieżek ekstrakcji.
  2. Umieść moduł Zapytanie API i połącz poprzedni węzeł z jego wejściem.
  3. Otwórz go, wybierz Metodę i ustaw Timeout na najkrótszy czas, jaki obsługuje twój serwis.
  4. Wpisz URL, wstawiając zmienne z panelu Dostępne zmienne.
  5. Uzupełnij Nagłówki, jeden na linię, zazwyczaj linię uwierzytelniającą dostarczoną przez dostawcę.
  6. Dla POST albo PUT wpisz Treść.
  7. Kliknij Dodaj ekstrakcję i powiąż Ścieżkę JSON z nazwą Zmiennej, tyle razy, ile wartości chcesz odzyskać.
  8. Kliknij Zapisz, a następnie połącz OK z normalnym dalszym ciągiem, a Błąd z rozwiązaniem zapasowym, które obsługuje połączenie bez tej danej.
  9. Umieść moduł Debugowanie po wyjściu OK, z komunikatem zawierającym wyodrębnione zmienne, aby odczytać, co rzeczywiście zostało odebrane.
  10. Kliknij Zapisz, a następnie Zastosuj zmiany w górnym pasku.
  11. Zadzwoń pod swój numer, a następnie otwórz Dziennik debugowania planu i sprawdź wyodrębnione wartości.

Jeśli coś nie działa

Wszystkie połączenia trafiają w Błąd, mimo że URL działa w przeglądarce. Przeglądarka wysyła twoje ciasteczka sesji, moduł nie. Sprawdź nagłówek uwierzytelniający. Sprawdź następnie URL po podstawieniu zmiennych: źle napisane {{nazwa}} staje się pustką i tworzy niekompletny adres. Wreszcie każda odpowiedź spoza rodziny sukcesów liczy się jako niepowodzenie, nawet czytelna strona błędu.

Wyjście Błąd zostaje użyte natychmiast, bez odpytania serwisu. Bezpiecznik jest otwarty: pięć kolejnych niepowodzeń wobec tego serwera przełączyło go na trzydzieści sekund. Odczekaj pół minuty, zanim wyciągniesz wnioski, a następnie zadzwoń ponownie.

Wybrałem 10 sekund, a połączenie wraca po 8. Czas jest ograniczony do ośmiu sekund przy wykonaniu, niezależnie od wybranej wartości. To celowe: powyżej tego dzwoniący już by się rozłączył.

Wyodrębniona zmienna jest pusta, mimo że odpowiedź zawiera daną. Ścieżka nie pasuje. Poziomy oddziela się kropkami, listy liczy się od zera, a pusta ścieżka zwraca całą odpowiedź. Wyodrębnij najpierw całą odpowiedź do zmiennej, przeczytaj ją w Dzienniku debugowania, a następnie zapisz dokładną ścieżkę.

Połączenie kończy się, gdy serwis nie odpowiada. Wyjście Błąd nie jest z niczym połączone. Połącz je, przynajmniej ze zwyczajowym powitaniem.

Jak powstaje plan połączeń, wyjaśnione na obrazach

Zobacz stronę Plany numeracji