Operator CALL REST API umożliwia integrację z dowolnym zewnętrznym serwisem REST, oferując pełną elastyczność w zakresie konfiguracji wywołań HTTP. Działa na poziomie pojedynczego wywołania (niezależnie od ilości rekordów na magistrali) lub pojedynczych rekordów magistrali, co oznacza, że dla każdego rekordu wykonuje osobne zapytanie, przesyłając dane w wymaganym formacie i odbierając odpowiedź.
Operator pozwala na:
- Dowolne modelowanie adresu URL usługi korzystając z bitów magistrali, parametrów projektu czy parametrów globalnych
- dowolne definiowanie nagłówków, parametrów oraz 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, niestandardowe),
- oraz mapowanie odpowiedzi do istniejących bitów magistrali, w tym zapisywanie zwróconych danych i 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 w czasie rzeczywistym.
Przykład projektu z użyciem operatora CALL REST API.
Operator jest operatorem bliźniaczym z INPUT REST API i główne szczegóły konfiguracji są opisane na tym operatorze.
Występują jednak pewne różnice wynikające z faktu, że operator jest operatorem środkowym - wpiętym w magistralę, a co za tym idzie domyślnie przetwarzanie uruchamiane jest dla każdego rekordu magistrali danych. W takim przypadku możliwe jest użycie bitów magistrali do budowy zarówno body jak i adresu wywoływanej usługi.
Również dane zwracane przez serwis jak i wartość status code wstawiane są do każdego rekordu magistrali, dla którego nastąpiło wywołanie usługi. Możliwe jest również podanie wcześniej przygotowanych bitów (np. prze operator WIDTH BUSBAR ) do przechowania tych danych.
Zakładka Execution wymaga określenia czy wywołanie ma być w trybie Single execution (jeden raz dla wszystkich rekordów) czy dla każdego rekordu osobno. W polu Result target możliwe jest wybranie opcji Value into an existing column pozwalające na wybór kolumny z magistrali gdzie trafi rezultat zwracany przez serwis. Podobnie z pozostałymi kolumnami.
- W przypadku zaznaczenia trybu Single execution operator będzie się zachowywać jak operator
INPUT REST API. Wykona się tylko raz. Zwróci magistralę wyjściową zbudowaną z jednego rekordu z wartością status code i rezultatem zwróconym z serwisu. Nie można będzie użyć bitów magistrali w budowie adresu usługi, parametrach wywołania itp.
- W przypadku wywołania dla każdego rekordu możliwe staje używanie bitów magistrali w budowie adresu, parametrów i body zapytania do usługi.
Jedyne miejsce możliwe do użycia bitów magistrali będzie w body typu raw, gdzie będzie możliwość zbudowania body wysyłanego do usługi z znacznikami LOOP i ENDLOOP.
Tekst w znacznikach zostanie powielony tyle razy ile było rekordów na magistrali wejściowej.
Wywołanie usługi nastąpi tyle razy ile będzie rekordów na magistrali wejściowej, a rezultat wywołania zostanie przekazany do bitów wskazanych w zakładce Execution.