Search

Home

Wywołanie i odpowiedź REST API

Wywołanie i odpowiedź REST API

Wywołanie

Przykład body wysyłanego jako wywołanie serwisu w systemie GRAVITY w formacie JSON:

Opis obiektu request:

atrybut
wymagany
typ
opis
call_alias
Tak. W przypadku wywołania metodą zbiorczą callandgetdata .
string
Wskazanie triggera jaki ma zostać uruchomiony (pole Alias w definicji triggera) cache_time .
Nie. W przypadku braku dane zwrócone z triggera nie będą zapisane do cache.
int
Informacja ile czasu (sekundy) zwrot danych z triggera ma być przechowywany w cache. Każde odwołanie do danych z cache wydłuża czas życia cache o wartość parametru. Przydatne dla pobierania danych porcjami. Z cache można skorzystać używając parametru process_id .
process_id
Wymagany dla pobierania danych z cache.
int
Identyfikator procesu przetwarzania uzyskany z odpowiedzi danego triggera i używany, aby odwołać się do cache. Jeśli identyfikator procesu istnieje w cache trigger nie zostanie uruchomiony, a dane zostaną zwrócone z cache. Jeśli w cache nie zostanie znaleziony taki identyfikator procesu wykona się trigger i zwróci nowe dane oraz nową wartość process_id .
get_data
Nie, jeśli projekt uruchamiany triggerem posiada tylko jeden operator OUTPUT DATAOUTPUT DATA i nie zamierzamy porcjować danych, filtrować lub sortować.
Array[output_data]
Tablica obiektów output_data. Zapewnia sterowanie zwrotem danych z operatorów OUTPUT DATAOUTPUT DATA na projekcie.
parameters
Tak jeśli projekt korzysta z parametrów.
object
Zapewnia przekazanie zarówno parametrów prostych do projektu jak i obiektu do operatora INPUT DATAINPUT DATA.

object output_data

atrybut
wymagany
typ
opis
description
Tak.
string
Nazwa operatora OUTPUT DATAOUTPUT DATA w definicji projektu.
records_count
Nie. Wymagany jeśli zamierzamy pobierać dane w paczkach.
int
Określa ilość zwróconych rekordów. Może być użyty w połączeniu z process_id=[process_id zwrócony z pierwszej odpowiedzi serwisu] wówczas kolejne porcje danych pochodzić będą z cache i nie nastąpi ponowne wywołanie triggera.
offset
Nie. Wymagany jeśli zamierzamy pobierać dane w paczkach.
int
Kolejna strona danych.
filter
Nie. Wymagany jeśli chcemy filtrować dane.
Array[“field”, “condition”, “value”]
Parametr zbudowany jako trójelementowa tablica zawierająca odpowiednio: pole w danych po którym filtrujemy (field), warunek (condition), wartość (value). Przy czym “field” oraz “value” może zostać rozbudowane do tablicy według powyższych zasad. Może być używany z parametrem process_id. Możliwe wartości parametru condition w zestawieniu poniżej.
sort
Nie. Wymagany jeśli zamierzamy sortować wyniki.
Array[sort]
Tablica obiektów sort po których będą sortowane zwracane dane z wskazanego operatora OUTPUT DATAOUTPUT DATA. Może być używany z parametrem process_id.

Atrybut condition tablicy filter:

atrybut
rodzaj
opis
‘and’
logiczny
Używany w przypadku łączenia warunków wymaga spełnienia wszystkich warunków połączonych tym operatorem.
‘or’
logiczny
Używany w przypadku łączenia warunków wymaga spełnienia przynajmniej jednego warunku z połączonych tym operatorem.
‘==’ lub ‘=’
porównawczy
równy
‘!=’
porównawczy
różny
‘>’
porównawczy
większy
‘>=’
porównawczy
większy równy
‘<’
porównawczy
mniejszy
‘<=’
porównawczy
mniejszy równy
‘contains’
porównawczy
zawiera ciąg znaków bez uwzględnienia wielkości znaków
‘containscasesensitive’
porównawczy
zawiera ciąg znaków z uwzględnieniem wielkości znaków
‘startswith’
porównawczy
zaczyna się od ciągu znaków
‘endswith’
porównawczy
kończy się ciągiem znaków

object parameters

atrybut
wymagany
typ
opis
[nazwa_parametru]
w zależności od definicji parametru w projekcie
w zależności od definicji parametru w projekcie
nazwa_parametru jest zależna od parametrów zdefiniowanych w projekcie podobnie jak ich typ. Każdy parametr utworzony w projekcie może być przekazany jako kolejna właściwość obiektu parameters  
[nazwa operatora DATA INPUT]
w zależności od definicji parametru w projekcie
object zależny od definicji projektu
Jeśli w projekcie używamy operatora INPUT DATAINPUT DATA to nazwa obiektu będzie nazwą tego operatora. wartością będzie natomiast obiekt o strukturze zdefiniowanej w operatorze w polu JSON template.

object sort

atrybut
wymagany
typ
opis
selector
tak
string
Nazwa pola w danych zwracanych przez proces, według którego dane zostaną posortowane.
desc
tak
bool
Kierunek sortowania.

Odpowiedzi

  • Poprawna odpowiedź:

Opis obiektu response:

atrybut
typ
opis
process_id
string
Identyfikator procesu uruchomienia triggera. Jeśli w wywołaniu użyty był parametr cache_time możliwe jest użycie wartości parametru w celu pobrania danych z cache.
state
string
Status wykonania. możliwe wartości “Success” lub “Fault”.
output_data
Array[output_data]
Tablica operatorów OUTPUT DATAOUTPUT DATA jakie były zdefiniowane w wywołaniu serwisu. Zawiera parametry operatora oraz dane.

object output_data

atrybut
typ
opis
output_description
string
Nazwa operatora OUTPUT DATAOUTPUT DATA z którego są zwracane dane.
records
int
Całkowita ilość rekordów zwrócona z obiektu OUTPUT DATAOUTPUT DATA.
filtered_records
int
Ilość rekordów zwrócona po zastosowaniu filtrów. Nie występuje, gdy brak filtrów.
input_parameters
object
Obiekt zawiera przepisane dane wywołania dla danego obiektu OUTPUT DATAOUTPUT DATA.
data - nazwa zależna od konfiguracji zwracanego schematu na operatorze OUTPUT DATAOUTPUT DATA
object
Dane zwracane przez operator OUTPUT DATAOUTPUT DATA. Struktura zależna od konfiguracji schematu JSON na operatorze.
  • Błędna odpowiedź:
{
    "process_id": 0,
    "state": "Fault",
    "error": "There is no such a call_alias: article1"
}

Opis obiektu error:

atrybut
typ
opis
process_id
string
Identyfikator procesu uruchomienia triggera. 
state
string
Status wykonania. możliwe wartości “Success” lub “Fault”.
error
string
Opis błędu.