Skip to main content

Dynamische Parameter

Um beispielsweise die Detailinformationen zur Ressource users der Microsoft Graph API für alle gesammelten Datensätze automatisiert abrufen zu können, ist es möglich dynamische Parameter zu definieren. In diesem Beispiel soll mit jeder id aus der ersten Ressource, eine Abfrage mit der zweiten Ressource durchgeführt werden. Konkret bedeutet das, dass die Ressource users/{id} für jede vorhandene ID einmal abgefragt werden soll.

Ressourcen-Parameter

Mit dem Parametertyp Resource ist es möglich, die Werte einer Tabelle oder einer anderen Ressource, als Parameter zu wählen. Dabei muss diese Referenz-Ressource vorher eingesammelt worden sein. Dies kann durch die Sortierreihenfolge (Spalte "Sorting") sichergestellt werden.

dc-dynamic-parameters-1.png

Nach Speichern des Parameters wird unter Resouce die entsprechende SQL-Abfrage angezeigt. Der statische Hilfs-Parameter kann deaktiviert werden, da er bei der automatisierten Datensammlung nicht berücksichtigt werden soll.

dc-dynamic-parameters-2.png

Alternativ kann auch eine benutzerdefinierte SQL-Abfrage hinterlegt werden. Diese darf nur eine Spalte zurückgeben.

dc-dynamic-parameters-3.png

Bei einem dynamischen Parameter wird für jedes SQL-Abfrageergebnis eine API-Abfrage durchgeführt.
Jedes SQL-Abfrageergebnis zählt als eigener Parameter. 

Fallbeispiel

https://abfallnavi.api.bund.dev/

dc-dyn-parameters-03.png

Konfiguration der Ressourcen

Uri Pattern: Hiermit kann die Abfrage-Adresse für die jeweilige Ressource angepasst werden. Dieser Wert bezieht sich nur auf die Ressource und es ist möglich, beliebige Keys aus den konfigurierten Query-Parametern anzugeben. Diese werden dann automatisch beim Einsammeln der Daten mit den jeweiligen dynamischen oder statischen Parameterwerten ersetzt. Der Wert {Resource} entspricht hier immer dem Wert aus der Spalte Resource.

dc-dynamic-parameters-example-1.png

Im folgenden Beispiel wird ein Teil der URL {strassenId}, im Uri-Pattern dynamisch durch die ID ersetzt, die in der vorhergehenden Ressource "Straßen, Solingen" eingesammelt wurde. Damit kann die Ressource "Termine" für alle vorher ermittelten Straßen eingesammelt werden. Mit dem Parametertyp "Resource" kann dazu die passende Tabelle und Spalte ausgewählt werden, dessen Werte als Parameter genutzt werden sollen. 

Im folgenden Beispiel wird ein Teil der URL {strassenId}, im URI-Pattern dynamisch durch die ID ersetzt, die in der vorhergehenden Ressource "Straßen, Solingen" eingesammelt wurde. Auf diese Weise kann die Ressource "Termine" für alle zuvor ermittelten Straßen abgefragt werden. Mit dem Parametertyp "Resource" kann die passende Tabelle und Spalte ausgewählt werden, deren Werte als Parameter genutzt werden sollen.

dc-dynamic-parameters-example-3.png

Alternativ besteht auch die Möglichkeit, ein SQL-Query zu hinterlegen (Parametertyp Query), welches genau eine Spalte zurückgeben darf.

Das oben genannten Beispiel für die Ressource "Termine" führt zu n Aufrufen (n = Anzahl der Einträge aus der Ressource "Straßen, Solingen") ein einzelner Aufruf entspricht: {BaseUri}/{Version}/{UriPattern}
--> https://solingen-abfallapp.regioit.de/abfall-app-solingen/rest/strassen/{strassenId}/{Resource}

Ablauf
  • UriPattern wird durch den Inhalt aus der Spalte UriPattern {strassenId}/{Resource} ersetzt
  • Der Parameter straßenId wird durch die Spalte id der Tabelle SolingenStraßen ersetzt
  • Resource wird durch die konfigurierte Ressource (termine) ersetzt

Zur Ermittlung der Parameterwerte für straßenId wird entsprechend das SQL-Query SELECT DISTINCT id FROM SolingenStraßen ausgeführt und führt z.B. zu folgenden API-Abfragen:

Bsp. Aufruf 1: https://solingen-abfallapp.regioit.de/abfall-app-solingen/rest/strassen/00001/termine
Bsp. Aufruf 2: https://solingen-abfallapp.regioit.de/abfall-app-solingen/rest/strassen/00002/termine
Bsp. Aufruf 3: https://solingen-abfallapp.regioit.de/abfall-app-solingen/rest/strassen/00003/termine