Daten aus Datasets werden über die API-Endpunkte  data_get und data_getList gelesen.
 

Parameter

Grundsätzliche Parameter sind wie folgt.

ParameterDescriptionExample
datasetLabel des Dataset auf das zugegriffen werden soll"product"
fieldsFelder, die zurückgegeben werden sollen 
filterFilter, um nach beliebigen Feldern und Werten das Ergebnis zu filtern 
sql(optional) Um LIMITs oder ORDERs (Sortierung) der Abfrage hinzuzufügen 
 

Dataset

Über das dataset wird grundsätzlich festgelegt, auf welche Daten zugegriffen werden soll.
 

Fields

Definiert welche Felder vom Dataset zurückgeliefert werden sollen. Dies ist ein Pflichtangabe.
 
Welche Felder zur Verfügung stehen, hängt vom jeweiligen Dataset ab.
Um die Performance zu erhöhen, sollten immer nur die Felder requested werden, die auch wirklich benötigt werden.
 
Beispiel Parameter
{
    ...
    "fields": [               // An array of field-labels to be returned
        "firstname",
        "lastname",
        "gender"
    ],
    ...
}
 

Filter

Bis auf einige Ausnahmen, kann nach beliebigen Feldern gefiltert werden. Mehrere Filter können kombiniert werden. Diese sind dann UND-verknüpft.
 
Es stehen verschiedene Filter-Operatoren, je nach Feld-Typ, zur Verfügung. Es existieren sehr umfangreiche und komfortable Filtermöglichkeiten .
 
Beispiel Parameter
{
    ...
    "filter": { 
        "lastname": "skywalker"          // Finds all records where field "lastname" matches "skywalker"
    },
    ...
}
 
 
 

Sortierung

Es kann optional nach einem oder mehreren Feldern sortiert werden.
 
Beispiel Parameter
{
    ...
    "sql": { 
        "order": "<field 1> ASC, <field 2> DESC"    // sorts for <field 1> ascending and within that for <field 2> descending.
    },
    ...
}
 

Limit / Paging

Die Anzahl der zurück zu liefernden Datensätze kann mit dem Limit-Parameter eingeschränkt werden.
 
Beispiel Parameter
{
    ...
    "sql": { 
        "limit": {
            "max": 50             // Returns only the first 50 records
        }
    },
    ...
}
 
 
Um ein Paging zu erzielen muss zusätzlich der start-Parameter mit angegeben werden.
 
Beispiel Parameter
{
    ...
    "sql": { 
        "limit": {
            "start": 100          // Start a result position 100 ...
            "max": 50             // and return the next 50 records!
        }                         // Which results to: record number #100 until #149
    },
    ...
}
 

Aggregierte Daten

Datensätze können auch in aggregierter Form zurückgeliefert werden.
Die zuvor beschriebenen Parameter werden hierbei mit verwendet.

Gruppierung

Um Datensätze zusammenzufassen, kann festgelegt werden, nach welchen Feldern des Datasets gruppiert werden soll.

Beispiel Parameter

   ...
   "fieldGroupBy": [
        {
            "field": "master_pcode"
        }
   ],
    ...

Measurements

Zum Aggregieren der Daten stehen verschiedene Aggregierungs-Funktionen zur Verfügung, die auf die Fields des Datensets angewendet werden können.
Felder, die bereits mit "filter_having" gekennzeichnet sind, stehen hierbei nicht zur Verfügung.
Achtung: Falls kein eigenes Gruppierungsfeld festgelegt wird, werden alle Datensätze zusammengefasst.

Verfügbare Aggregierungs-Funktionen:

"SUM" | "COUNT" | "COUNTDISTINCT" | "AVG" | "MIN" | "MAX" | "DISTINCT"


Beispiel Parameter

     ...,
     "fieldMeasure": [
        {
            "field": "price",       // dataset-field this relates to
            "aggregation": "MIN",   // aggregation-function
            "alias": "priceFrom"    // alias for the aggregated value
        },
        {
            "field": "price",
            "aggregation": "MAX", 
            "alias": "priceTo"
        }
    ],
    ...


 
 

Endpunkte

data_get

Bei get-calls wird immer nur der erste gefundene Datensatz zurückgeben. get-calls werden typischerweise genutzt, um per primary-key einen Datensatz direkt zu lesen.

Url: https://{your hublify url}/api/eos_10/data_get

Parameters

{
    "dataset": "person",
    "fields": [ "personid", "firstname", "lastname" ],
    "filter": { 
        "personid": "K00000001"
    }
}

Response

Bei get-Calls wird der eigentliche Datensatz direkt unter [data] zurückgegeben.

{ 
    "data": {
        "personid": "K00000001",
        "firstname": "Luke",
        "lastname": "Skywalker"
    },
    "status": true
}
 

data_getList

Bei getList-calls werden die Daten als Array zurückgegeben.

Url: https://{your hublify url}/api/eos_10/data_getList

Parameters

{
    "dataset": "person",
    "fields": [ "personid", "firstname", "lastname" ],
    "filter": { 
        "lastname": "Skywalker"
    }
}

Response

Bei getList-Calls werden die Datensätze als numerisches Array unter [data] zurückgegeben.

{ 
    "data": [
        {
            "personid": "K00000001",
            "firstname": "Luke",
            "lastname": "Skywalker"
        },
        {
            "personid": "K00000003",
            "firstname": "Anakin",
            "lastname": "Skywalker"
        }
    ],
    "status": true
}