Logo
    Pobierz gravity.integration

    Search

    Home

    Informacje podstawowe

    Dokumentacja techniczna

    Przykłady zastosowań

    gravity.integration
    gravity.integration
    /Dokumentacja techniczna
    Dokumentacja techniczna
    /Wywołanie procesu GRAVITY
    Wywołanie procesu GRAVITY
    /
    Wywołanie automatyczne poprzez REST API
    /Wywołanie i odpowiedź REST API
    Wywołanie i odpowiedź REST API
    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, 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 projek 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 z procesu po którym 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
    {
        "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
            }    
        }
    }
    {
        "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"
                    }
                ]
            }
        ]
    }