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 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 ‣ 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 projekt 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 danych zwracanych przez proces, według którego dane zostaną posortowane. |
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"
}
]
}
]
}