Data Analytics API (REST API)

Zugriff auf die zugrunde liegenden Daten von Data Analytics, bzw. der Widgets via API.

Für jedes Widget in Data Analytics können die zugrunde liegenden Daten über eine bereitgestellte REST-API abgefragt werden. Die Integration in Anwendungen von Drittanbietern funktioniert schnell und unkompliziert.


API-Call

Sobald Sie ein Widget konfigurieren, finden die den Punkt API Call im Seitenmenü. Diese Option ist für jedes Widget verfügbar.

Das dann angezeigte Dialogfeld enthält detaillierte Informationen darüber, wie der API-Call für die Daten dieses Widgets aussieht. Kopieren Sie den bereitgestellten Curl-Befehl und führen Sie ihn entsprechend aus. Sie können den Call direkt im Dialogfeld testen, einschließlich des Antwortformats, indem Sie auf Try it out! klicken:

Dieser Access Token ist temporär. Für eine dauerhafte Integration in Anwendungen von Drittanbietern benötigen Sie einen permanenten Token. Melden Sie sich diesbezüglich gerne bei unserem Support.


Authentifizierung

Wir halten uns strikt an den von Microsoft dokumentieren OAuth flow. Es gibt mehrere Client Libraries, die Sie verwenden können.

Beispiel für eine Integration

In der untenstehenden GitHub-Repository finden Sie Beispielcodes, die zeigen, wie Sie die Daten in Ihre eigene Anwendung integrieren können. Es wird veranschaulicht, wie Sie die erforderliche Authentifizierung durchführen und Abfragen durchführen können.


Beispiel für einen Request

Fahrradzählung

Untenstehend sehen Sie ein Widget in Data Analytics, das für die Fahrradzählung genutzt wird. Der entsprechende Widget-Typ (Traffic Counting) wurde ausgewählt, die Daten werden pro Tag aggregiert, nach Objektklasse und Richtung aufgeschlüsselt und nach Fahrrädern gefiltert.

API-Request

Der API-Call zeigt den entsprechenden GET-Request für diese Daten wie untenstehend dargestellt:

https://example.com/cubejs-api/v1/load?query=
{
   "measures":[
      "CrossingEvents.count"
   ],
   "dimensions":[
      "CrossingEvents.classification",
      "CrossingEvents.direction"
   ],
   "segments":[],
   "filters":[
      {
         "member":"CrossingEvents.streamId",
         "operator":"equals",
         "values":[
            "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
         ]
      },
      {
         "member":"CrossingEvents.classification",
         "operator":"contains",
         "values":[
            "bicycle"
         ]
      },
      {
         "member":"CrossingEvents.lineId",
         "operator":"equals",
         "values":[
            "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
         ]
      }
   ],
   "timeDimensions":[
      {
         "dimension":"CrossingEvents.timestamp",
         "granularity":"day",
         "dateRange":"This week"
      }
   ],
   "order":{}
}

API-Response (gekürzt):

{
  "queryType": "regularQuery",
  "results": [
    {
      "query": {...},
      "data": [
        {
          "CrossingEvents.classification": "bicycle",
          "CrossingEvents.direction": "in",
          "CrossingEvents.timestamp.day": "2021-11-02T00:00:00.000",
          "CrossingEvents.timestamp": "2021-11-02T00:00:00.000",
          "CrossingEvents.count": "235"
        },
        {
          "CrossingEvents.classification": "bicycle",
          "CrossingEvents.direction": "out",
          "CrossingEvents.timestamp.day": "2021-11-02T00:00:00.000",
          "CrossingEvents.timestamp": "2021-11-02T00:00:00.000",
          "CrossingEvents.count": "234"
        },
        {
          "CrossingEvents.classification": "bicycle",
          "CrossingEvents.direction": "in",
          "CrossingEvents.timestamp.day": "2021-11-03T00:00:00.000",
          "CrossingEvents.timestamp": "2021-11-03T00:00:00.000",
          "CrossingEvents.count": "203"
        },
        {
          "CrossingEvents.classification": "bicycle",
          "CrossingEvents.direction": "out",
          "CrossingEvents.timestamp.day": "2021-11-03T00:00:00.000",
          "CrossingEvents.timestamp": "2021-11-03T00:00:00.000",
          "CrossingEvents.count": "249"
        }
      ],
      "annotation": {...}
    }
  ],
  "pivotQuery": {...}
}

Erweiterte Dokumentation

Die REST-API basiert auf Cube.js. Weitere Informationen und Details dazu und zur Funktionsweise generell finden Sie in dieser externen Dokumentation.

Last updated