Wywołanie
Przykład body wysyłanego jako wywołanie serwisu w systemie GRAVITY w formacie JSON
{
"call_alias": "article",
"cache_time": 30,
"process_id": 0,
"get_data": [
{
"description": "OutputData1",
"records_count": "500",
"offset": "0",
"filter": [
[["id","=",56],
"or",
["id","==",4],
"or",
[["id","==",51], "and", ["name","!=","item"]]]
],
"sort": [
{"selector":"Employee","desc":false},
{"selector":"Age","desc":false}
],
}
],
"parameters": {
"id": 23,
"InputData1": {
"name": "item",
"quantity": 34
}
}
}
Opis obiektu request
:
atrybut | wymagany | typ | opis |
call_alias | Tak. W przypadku wywołania na 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, 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 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 DATA na projekcie |
parameters | Tak jeśli projek korzysta z parametrów | object | Zapewnia przekazanie zarówno parametrów prostych do projektu jak i obiektu do operatora INPUT DATA. |
object output_data
atrybut | wymagany | typ | opis |
description | Tak | string | Nazwa operatora OUTPUT 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 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 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 zwracanych danych podlegają sortowaniu |
desc | tak | bool | Kierunek sortowania |
Odpowiedzi
- Poprawna odpowiedź:
{
"process_id": 364,
"state": "Success",
"output_data": [
{
"output_description": "OutputData1",
"records": 215,
"filtered_records": 2,
"input_parameters": {
"description": "OutputData1",
"records_count": "500",
"offset": "0",
"filter": [
[["id","=",1],
"or",
["id","==",2],
"or",
[["id","==",51], "and", ["name","!=","item"]]]
],
"sort": [
{"selector":"id","desc":false},
{"selector":"name","desc":false}
],
},
"data": [
{
"id": 1,
"name": "Item1",
"code": "123456789"
},
{
"id": 2,
"name": "Item2",
"code": "987654321"
}
]
}
]
}
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 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 DATA z którego są zwracane dane |
records | int | Całkowita ilość rekordów zwrócona z obiektu OUTPUT 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 DATA |
data - nazwa zależna od konfiguracji zwracanego schematu na operatorze OUTPUT DATA | object | Dane zwracane przez operator OUTPUT 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 |