Operator CALL REST API umożliwia integrację z dowolnym zewnętrznym serwisem REST, oferując pełną elastyczność konfiguracji wywołań HTTP. Może działać w trybie pojedynczego wywołania (niezależnie od liczby rekordów magistrali) lub wykonywać osobne wywołanie dla każdego rekordu magistrali. W drugim przypadku dla każdego rekordu wysyłane jest oddzielne żądanie z danymi w wymaganym formacie, a następnie odbierana jest odpowiedź serwera.
Operator pozwala na:
- dowolne modelowanie adresu URL usługi z wykorzystaniem bitów magistrali, parametrów projektu oraz parametrów globalnych
- dowolne definiowanie nagłówków, parametrów i treści żądania (np. JSON, form-data, query string),
- dynamiczne wstawianie wartości z bitów magistrali oraz parametrów projektu,
- wybór metody HTTP (GET, POST, PUT, DELETE itd.),
- obsługę autoryzacji (Basic, Bearer Token i niestandardowej),
- mapowanie odpowiedzi do istniejących bitów magistrali, w tym zapisywanie zwróconych danych oraz kodu statusu HTTP.
Dzięki temu operatorowi GRAVITY może działać jako aktywny klient usług zewnętrznych, automatyzując pobieranie, przesyłanie i synchronizację danych.
Przykład projektu z użyciem operatora CALL REST API.
Operator jest funkcjonalnie powiązany z operatorem INPUT REST API, dlatego większość zagadnień konfiguracyjnych została opisana w jego dokumentacji.
Istnieją jednak różnice wynikające z tego, że CALL REST API jest operatorem pośrednim, umieszczonym w magistrali przetwarzania. Domyślnie wykonuje wywołanie dla każdego rekordu magistrali danych. Dzięki temu możliwe jest wykorzystanie bitów magistrali do budowy adresu URL, parametrów oraz treści żądania. Dane zwrócone przez serwis oraz kod statusu HTTP są zapisywane w każdym rekordzie, dla którego wykonano wywołanie. Możliwe jest również wykorzystanie wcześniej przygotowanych bitów (np. przez operator WIDTH BUSBAR) do przechowania tych danych.
Na zakładce Execution należy określić, czy wywołanie ma zostać wykonane w trybie Single execution (jedno wywołanie dla wszystkich rekordów), czy osobno dla każdego rekordu. W polu Result target można wybrać opcję Value into an existing column, która pozwala wskazać kolumnę magistrali, do której zostanie zapisany rezultat zwrócony przez serwis. Analogicznie konfigurowane są pozostałe pola.
- W trybie Single execution operator wykonuje jedno wywołanie i zachowuje się analogicznie do operatora INPUT REST API. Na wyjściu tworzona jest magistrala zawierająca jeden rekord z kodem statusu HTTP oraz odpowiedzią serwera. W tym trybie nie można wykorzystywać bitów magistrali do budowy adresu URL, parametrów ani nagłówków.
- W trybie wywołania dla każdego rekordu możliwe jest wykorzystanie bitów magistrali podczas budowy adresu URL, parametrów oraz treści żądania.
Jedynym miejscem, w którym można używać bitów magistrali, jest treść żądania typu Raw, wykorzystująca znaczniki LOOP i ENDLOOP.
Tekst umieszczony pomiędzy znacznikami zostanie powielony tyle razy, ile rekordów znajduje się na magistrali wejściowej.
Wywołanie usługi zostanie wykonane dla każdego rekordu magistrali wejściowej, a wynik zostanie zapisany do bitów wskazanych na zakładce Execution.