Einleitung: Warum cURL in FileMaker so mächtig ist
Wenn du in der Welt der APIs unterwegs bist, stößt du früher oder später auf cURL – ein Werkzeug, das Daten zwischen Anwendungen fließen lässt. Für uns FileMaker-Entwickler eröffnet cURL ganz neue Möglichkeiten: Du kannst mit APIs von Trello, Slack, Stripe oder Google arbeiten und Daten in beide Richtungen austauschen.
Doch cURL kann auf den ersten Blick komplex wirken: Wie funktionieren die Befehlsoptionen? Was muss ich bei HTTP-Methoden beachten? Wie baue ich eine API-Abfrage sauber und wartbar?
In diesem Beitrag zeige ich, wie ich mich Schritt für Schritt an die besten Praktiken für cURL in FileMaker herangetastet habe – inklusive Tipps, wie du deine Skripte klar und effizient halten kannst.
Was ist cURL?
cURL steht für Client URL und ist ein Kommandozeilen-Tool, das HTTP- und andere Protokollanfragen ausführt. Mit cURL kannst du:
•Daten abrufen (z. B. API-Abfragen wie „Hole alle Karten aus Trello“).
•Daten senden (z. B. „Erstelle eine neue Karte in Trello“).
•Dateien hoch- und herunterladen.
•HTTP-Methoden wie GET, POST, PUT oder DELETE verwenden.
In FileMaker wird cURL in der Funktion „Insert from URL“ eingebettet. So kannst du externe Dienste in deine Datenbank integrieren.
Schritt 1: Die Grundlagen von cURL verstehen
Bei cURL dreht sich alles um Befehlsoptionen, die festlegen, was passiert. Hier sind die wichtigsten Optionen:
•-X: Gibt die HTTP-Methode an (z. B. GET, POST, PUT, DELETE).
•-H: Fügt Header wie Content-Type oder Authorization hinzu.
•-d: Überträgt Daten an den Server (z. B. als JSON-Objekt).
•@: Zeigt an, dass Daten aus einer Datei geladen werden (z. B. -d @payload.json).
Ein einfacher cURL-Befehl könnte so aussehen:
curl -X POST \
-H «Content-Type: application/json» \
-d ‚{«key»:»APIKey»,»token»:»APIToken»,»name»:»Test»}‘ \
https://api.trello.com/1/cards
Schritt 2: Erste Schritte in FileMaker
In FileMaker baust du deinen cURL-Request in drei Schritten auf:
1.Definiere die URL (z. B. den Trello-Endpunkt).
2.Erstelle die cURL-Optionen (Methoden, Header, Daten).
3.Sende die Anfrage mit „Insert from URL“ und speichere die Antwort.
Beispiel: Eine neue Karte in Trello erstellen:
Set Variable [ $url ; Value: «https://api.trello.com/1/cards» ]
Set Variable [ $payload ; Value: «{\»key\»:\»APIKey\»,\»token\»:\»APIToken\»,\»name\»:\»Neue Karte\»}» ]
Set Variable [ $curlOptions ; Value:
«-X POST » &
«-H \»Content-Type: application/json\» » &
«-d » & Quote ( $payload )
]
Insert from URL [ Select ; URL: $url ; cURL options: $curlOptions ; Target: $response ]
Schritt 3: Dynamische JSON-Payloads mit JSONSetElement
Schritt 3: Dynamische JSON-Payloads mit JSONSetElement
Mit FileMakers JSONSetElement kannst du JSON-Daten dynamisch und fehlerfrei erstellen.
Vorteile:
•Dynamisch: JSON wird aus Feldern oder Variablen generiert.
•Fehlerreduktion: Kein manuelles Tippen von JSON-Strukturen.
•Lesbarkeit: Die Daten bleiben selbst bei komplexen Payloads übersichtlich.
Beispiel:
Set Variable [ $payload ; Value: JSONSetElement ( «» ;
[
«key» ; API_Credentials::TRELLO_API_KEY ; JSONString ;
«token» ; API_Credentials::TRELLO_TOKEN ; JSONString ;
«name» ; KARTE::TrelloTitle ; JSONString ;
«desc» ; KARTE::TrelloDescription ; JSONString
]
) ]
Tipp:
Nachdem du eine API-Antwort als JSON zurückbekommen hast, kannst du sie direkt in globale Variablen umwandeln, um gezielt auf die Werte zugreifen zu können. In meinem Blogbeitrag „FileMaker JSON Magic: Eine rekursive Reise zu Globalvariablen und Listen-Freiheit“ erkläre ich, wie du JSON-Daten automatisch in globale Variablen speicherst – eine perfekte Ergänzung für cURL-Skripte.
Schritt 4: Best Practices für cURL in FileMaker
Hier ein paar Regeln, die mir geholfen haben, cURL-Anfragen sauber und effizient zu gestalten:
1. Trenne URL, Payload und cURL-Optionen
Eine klare Trennung macht Skripte lesbar und leicht anpassbar.
Beispiel:
Set Variable [ $url ; Value: «https://api.trello.com/1/cards» ]
Set Variable [ $curlOptions ; Value:
«-X POST » &
«-H \»Content-Type: application/json\» » &
«-d » & Quote ( $payload )
]
2. Nutze Logging für Debugging
Speichere die Antwort des API-Calls in einem Debug-Feld oder einer Variablen, um Fehler einfacher zu analysieren.
Insert from URL [ Select ; URL: $url ; cURL options: $curlOptions ; Target: $response ]
Set Field [ DebugLog::Response ; $response ]
3. Verwende JSONGetElement für die Antwort
Extrahiere gezielt Daten aus der API-Antwort.
Set Variable [ $cardId ; Value: JSONGetElement ( $response ; «id» ) ]
Schritt 5: Erweiterung auf andere HTTP-Methoden
Beispiel für PUT (Daten aktualisieren):
Set Variable [ $url ; Value: «https://api.trello.com/1/cards/» & $cardId ]
Set Variable [ $payload ; Value: JSONSetElement ( «» ;
[
«name» ; «Aktualisierte Karte» ; JSONString ;
«desc» ; «Neue Beschreibung» ; JSONString
]
) ]
Set Variable [ $curlOptions ; Value:
«-X PUT » &
«-H \»Content-Type: application/json\» » &
«-d » & Quote ( $payload )
]
Insert from URL [ Select ; URL: $url ; cURL options: $curlOptions ; Target: $response ]
Fazit: Effizienz mit cURL in FileMaker
cURL mag anfangs kompliziert wirken, doch mit ein paar klaren Prinzipien wird es zu einem unschätzbaren Werkzeug:
1.Trenne Daten, URL und cURL-Optionen.
2.Nutze JSONSetElement, um dynamische und fehlerfreie Payloads zu erstellen.
3.Protokolliere API-Antworten, um Fehler zu analysieren.
4.Nutze JSONGetElement, um gezielt Daten aus der API-Antwort zu extrahieren.
5.Kombiniere JSONtoVars, um JSON-Antworten bequem in globale Variablen umzuwandeln.
Mit etwas Übung wirst du schnell souverän im Umgang mit cURL – und deine FileMaker-Datenbanken werden durch nahtlose API-Integration unschlagbar flexibel! 🚀