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 ‣ i nie zamierzamy porcjować danych, filtrować lub sortować | Array[output_data] | Tablica obiektów output_data . Zapewnia sterowanie zwrotem danych z operatorów ‣ 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 ‣. |
object output_data
atrybut | wymagany | typ | opis |
---|---|---|---|
description |
Tak | string | Nazwa operatora ‣ 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 ‣. 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 ‣ 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 |
{
"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"
}
]
}
]
}