Oprogramowanie GRAVITY zapewnia serwer obsługujący zapytania REST API. Wszystkie wyzwalacze zdefiniowane jak Web Service będą dostępne jako serwisy i mogą być używane przez dowolne oprogramowanie jako API o funkcjonalności zdefiniowanej w projekcie. Wywołanie API wymaga znajomości adresu serwisu, podania metody wywołania, autoryzacji oraz wysłania zdefiniowanego obiektu JSON jako body (metoda POST) lub parametrów (GET).
Konfiguracja i budowa adresu serwisu (endpoint)
Usługa dostępna jest w dwojaki sposób:
- pod adresem zbiorczym dla wszystkich usług (o wyzwalaczu jaki zostanie wywołany decyduje pole call_alias w body zapytania):
[adres ustawiony w menu options]/callandgetdata
- jako endpoint zbudowany w oparciu o pole Alias w definicji wyzwalacza
[adres ustawiony w menu options]/v1/[alias]
Metody wywołania
W wywołaniu zbiorczym jedynym sposobem wywołania usługi jest metoda POST.
W adresie budowanym w oparciu o alias wyzwalacza możliwe wywołania to POST i GET. W wywołaniu GET wszelkie niezbędne parametry potrzebne do wywołania API muszą zostać zawarte w parametrach adresu. W wywołaniu POST parametry można zawrzeć w body lub używając nagłówka “content-type”: “application/json” lub jako dane używając nagłówka “content-type”: “x-www-form-urlencoded”
Authorization
W zależności od wyboru sposobu w zakładce options oprogramowania GRAVITY używamy nagłówka “Authorization” Base lub Bearer.
np: “Authorization” : “Bearer [token wygenerowany dla uprawnienia]” lub “Authorization”: “Basic [Base64 (user:pass)]”
Body
Aplikacja Gravity wymaga ustandaryzowanego komunikatu przesłanego jako obiekt JSON w body lub jako parametry w zależności od sposobu wywołania (patrz punkt b).
Przykładowe wywołanie usługi Wywołanie i odpowiedź REST API
Rezultat wywołania
Serwer gravity zwraca odpowiedni StatusCode w zależności od rezultatu wykonania uruchomionego wyzwalacza.
Możliwe zwracane statusy
200 - projekt wywołany przez triggera zakończył się sukcesem
400 - błędne wywołanie brak triggera o podanym aliasie
401 - błędny użytkownik lub typ autoryzacji
500 - błąd w projekcie