Warenkorb
0
Wagen 0
Telefonische Beratung +49 (0) 441-30 43 76 40
In Deutschland werden REST APIs häufig in vielen Branchen eingesetzt, um Anwendungen und Systeme miteinander zu verbinden. Besonders verbreitet sind sie im E-Commerce, wo Plattformen wie Shopware, Magento und WooCommerce APIs nutzen, um Produkte, Bestellungen und Kundeninformationen mit ERP-Systemen oder Zahlungsdiensten wie PayPal und Klarna zu integrieren. Auch im Finanzwesen sind APIs durch Open Banking und PSD2-Richtlinien weit verbreitet, was Banken wie N26 und die Deutsche Bank ermöglicht, Daten sicher an Drittanbieter zu übermitteln. In der Logistik unterstützen APIs Versanddienstleister wie DHL und Hermes bei der Sendungsverfolgung und der Automatisierung von Versandprozessen. APIs werden zudem im Gesundheitswesen zur Verwaltung von Patientendaten und in der öffentlichen Verwaltung zur Digitalisierung von Bürgerdiensten eingesetzt.
Die Verbindung zu einer REST API in FileMaker ist ein häufiger Anwendungsfall, um Daten von externen Systemen in FileMaker-Datenbanken zu integrieren oder Daten an diese Systeme zu senden. Die Authentifizierung bei diesen REST APIs erfolgt häufig über OAuth oder Token-basierte Authentifizierung. Im folgenden finden Sie eine ausführliche Anleitung, wie dies funktioniert.
1. Grundlagen der REST API-Verbindung
Bevor wir mit der Authentifizierung beginnen, müssen wir die REST API über die FileMaker-Funktion Insert from URL ansprechen, die in einem Script verwendet wird. REST APIs verwenden in der Regel HTTP-Methoden wie:
GET
: Daten von der API abrufen.POST
: Daten an die API senden.PUT
: Vorhandene Daten aktualisieren.DELETE
: Daten löschen.Der Hauptpunkt ist jedoch die Anmeldung an der API, um diese Methoden nutzen zu können.
Eine der einfachsten Authentifizierungsformen ist HTTP-Basic-Auth. Hierbei wird der Benutzername und das Passwort in den Authorization
-Header des HTTP-Requests integriert.
Variable setzen [ $username ; Wert: "your_username" ]
Variable setzen [ $password ; Wert: "your_password" ]
Variable setzen [ $url ; Wert: "https://api.example.com/resource" ]
# Usernamen und Passwort kombinieren, dann base64-encodieren
Variable setzen [ $encodedAuth ; Wert: Base64Encode ( $username & ":" & $password ) ]
# cURL-Optionen definieren
Variable setzen [ $cURLOptions ; Wert:
"--header \"Authorization: Basic " & $encodedAuth & "\"" ]
# API-Abfrage ausführen
Aus URL einfügen [ Auswahl ; Dialog: Aus ; Ziel: $response ; URL: $url ; cURL-Optionen: $cURLOptions ]
In diesem Beispiel wird der Benutzername und das Passwort in einen Base64-kodierten String umgewandelt und als Authorization-Header gesendet.
OAuth 2.0 ist ein standardisiertes Framework, das einen Token-basierten Zugriff auf eine API ermöglicht. Es ist in verschiedenen Flows verfügbar:
Dieser Flow wird verwendet, wenn die Anwendung direkt mit der API kommuniziert und keine Benutzerinteraktion erforderlich ist. Hier wird ein Access Token von der API angefordert.
Variable setzen [ $client_id ; Wert: "your_client_id" ]
Variable setzen [ $client_secret ; Wert: "your_client_secret" ]
Variable setzen [ $url ; Wert: "https://auth.example.com/oauth/token" ]# cURL-Optionen definieren
Set Variable [ $cURLOptions ; Wert:
"--data-urlencode \"client_id=" & $client_id & "\" " &
"--data-urlencode \"client_secret=" & $client_secret & "\" " &
"--data-urlencode \"grant_type=client_credentials\"" ]# API-Abfrage ausführen
Aus URL einfügen [ Auswahl ; Dialog: Aus ; Ziel: $response ; URL: $url ; cURL options: $cURLOptions ]# Token aus dem JSON extrahieren
Variable setzen [ $accessToken ; Wert: JSONGetElement ( $response ; "access_token" ) ]
Variable setzen [ $api_url ; Wert: "https://api.example.com/protected_resource" ]
# cURL-Optionen mit Bearer token definieren
Variable setzen [ $cURLOptions ; Wert:
"--header \"Authorization: Bearer " & $accessToken & "\"" ]
# API-Abfrage ausführen
Aus URL einfügen [ Auswahl ; Dialog: Aus ; Ziel: $api_response ; URL: $api_url ; cURL-Optionen: $cURLOptions ]
Dieser Flow wird verwendet, wenn die API den Benutzer auffordert, sich zu authentifizieren und der Anwendung Zugriff zu gewähren. Der Ablauf besteht in der Regel aus den folgenden Schritten:
Authorization
-Header des API-Requests eingebunden.Bei der Token-basierten Authentifizierung wird häufig ein statischer API-Schlüssel verwendet, der von der API generiert wird und der im Authorization
-Header oder als URL-Parameter an die API gesendet wird.
Variable setzen [ $api_key ; Wert: "your_api_key" ]
Variable setzen [ $url ; Wert: "https://api.example.com/resource" ]# Define cURL options
Variable setzen [ $cURLOptions ; Wert:
"--header \"Authorization: Bearer " & $api_key & "\"" ]# Perform the API call
Aus URL einfügen [ Auswahl ; Dialog: Aus ; Ziel: $response ; URL: $url ; cURL-Optionen: $cURLOptions ]
Alternativ kann der API-Key als URL-Parameter gesendet werden:
Variable setzen [ $url ; Wert: "https://api.example.com/resource?api_key=your_api_key" ]
# API-Abfrage ausführen
Aus URL einfügen [ Auswahl ; Dialog: Aus ; Ziel: $response ; URL: $url ]
In vielen APIs läuft das Access Token nach einer bestimmten Zeit ab. Hierbei muss ein Refresh Token verwendet werden, um ein neues Access Token zu erhalten, ohne dass sich der Benutzer erneut authentifizieren muss.
Variable setzen [ $refresh_token ; Wert: "your_refresh_token" ]
Variable setzen [ $url ; Wert: "https://auth.example.com/oauth/token" ]
# cURL-Optionen für Token-Refresh definieren
Variable setzen [ $cURLOptions ; Wert:
"--data-urlencode \"refresh_token=" & $refresh_token & "\" " &
"--data-urlencode \"client_id=" & $client_id & "\" " &
"--data-urlencode \"client_secret=" & $client_secret & "\" " &
"--data-urlencode \"grant_type=refresh_token\"" ]
# Token Refresh ausführen
Aus URL einfügen [ Auswahl ; Dialog: Aus ; Ziel: $response ; URL: $url ; cURL-Optionen: $cURLOptions ]
# Neuen Access-Token aus der JSON-Antwort extrahieren
Variable setzen [ $new_accessToken ; Wert: JSONGetElement ( $response ; "access_token" ) ]
Um eine FileMaker Custom Function zu programmieren, die die Anmeldung an einer REST API durchführt und dabei über Parameter verschiedene Authentifizierungsmethoden wie Basic Auth, OAuth2, oder API-Keys unterstützt, können wir die Flexibilität von FileMaker nutzen. Die Funktion sollte dynamisch alle relevanten Parameter entgegennehmen und je nach Authentifizierungstyp das richtige Format erzeugen. Die Funktion benötigt das kostenlose FileMaker BaseElements Plugin, weil FileMaker die Funktion Aus URL Einfügen
nicht in einer eigenen Funktion unterstützt.
Die Custom Function soll über Parameter gesteuert werden, welche die API-URL, den Authentifizierungstyp und die notwendigen Daten wie Benutzername, Passwort, Client-ID, Client-Secret oder Token enthalten. Die Funktion wird dann die Authentifizierung durchführen und die Anmeldedaten in der richtigen Form an die API senden.
apiURL
: Die URL der REST API.authType
: Der Typ der Authentifizierung (z.B. „Basic“, „OAuth2“, „API-Key“).username
: Benutzername für Basic Auth.password
: Passwort für Basic Auth.clientID
: Client-ID für OAuth2.clientSecret
: Client-Secret für OAuth2.token
: API-Token oder OAuth2-Access-Token.extraParams
: Zusätzliche Parameter für die Anfrage (z.B. grant_type
für OAuth2)./*
Funktionsname: API_Login
Parameter:
apiURL (Text) - Die URL der API
authType (Text) - Der Authentifizierungstyp (Basic, OAuth2, API-Key)
user (Text) - Benutzername (für Basic Auth oder OAuth2)
password (Text) - Passwort (für Basic Auth oder OAuth2)
clientID (Text) - Client ID (für OAuth2)
clientSecret (Text) - Client Secret (für OAuth2)
token (Text) - Access Token (für API-Key oder OAuth2)
extraParams (Text) - Zusätzliche Parameter (für OAuth2)
Gibt zurück:
Response von der API oder Fehlernachricht
*/
SetzeVar ( [
//
Konfigurationsvariablen
url = apiURL;
authMethod = authType;
basicAuthHeader = "Authorization: Basic " & Base64Encode(user & ":" & password);
tokenAuthHeader = "Authorization: Bearer " & token;
// Daten für OAuth2 Client Credentials Flow vorbereiten
oauthData = "client_id=" & clientID & "&client_secret=" & clientSecret & "&grant_type=client_credentials";
// Setze die cURL-Optionen je nach Authentifizierungstyp
cURL_Options =
Falls(
authMethod = "Basic"; basicAuthHeader;
authMethod = "OAuth2"; "";
authMethod = "API-Key"; tokenAuthHeader;
""
);
// Anfrage senden je nach Authentifizierungsmethode
result = Falls(
authMethod = "Basic"; BE_HTTP_GET(url; cURL_Options);
authMethod = "OAuth2"; BE_HTTP_POST(url; oauthData; "Content-Type: application/x-www-form-urlencoded");
authMethod = "API-Key"; BE_HTTP_GET(url; cURL_Options); "Invalid Auth Method" ) ];
// Ergebnis der API-Abfrage zurückgeben
result
)
Basic
, OAuth2
, API-Key
).Authorization
-Header gesendet.Bearer
-Token im Header gesendet.Aus URL einfügen
-Funktion von FileMaker in eigenen Funktionen nicht unterstützt wird, sondern nur in Scripten.API_Login(
"https://api.example.com/login",
"Basic",
"myUsername",
"myPassword",
"",
"",
""
)
Diese Custom Function bietet eine flexible Möglichkeit, verschiedene Authentifizierungsmechanismen mit REST APIs in FileMaker zu integrieren, und kann leicht an spezifische Anforderungen angepasst werden.
FileMaker bietet die Möglichkeit, REST-APIs anzusprechen und unterschiedliche Authentifizierungsmechanismen wie OAuth, Basic Auth und Token-basierte Authentifizierung zu unterstützen. Durch die Nutzung von Aus URL einfügen
und cURL-Optionen können Sie komplexe Authentifizierungsprozesse abwickeln und sicherstellen, dass Ihre FileMaker-Lösungen nahtlos mit externen Systemen kommunizieren. Sobald die Anmeldung an der REST API fehlerfrei erfolgt, können Sie die gewünschten Endpunkte Ihrer API aufrufen und die gelieferten Daten weiterverarbeiten.
Hinzufügen von {{itemName}} zum Warenkorb
Hinzugefügt {{EinkaufsName}} zum Warenkorb