FileMaker Data API mit Python: Anmeldung und Datensuche

  • 15 Sep 2025
  • CODLAB Team
  • 2 min

Über die FileMaker Data API können Sie Datensätze aus einer gehosteten Datei lesen und bearbeiten. Für eine Python-Integration müssen die Data API am Server, die Datei und die Rechte des verwendeten Kontos zusammenpassen. Das Layout bestimmt, welche Felder und Datensätze für die Schnittstelle erreichbar sind.

Die Sitzung gehört vor die Datensuche

Sie melden sich am Sessions-Endpunkt an und erhalten einen Sitzungstoken. Weitere Aufrufe verwenden diesen Token im Authorization: Bearer-Header. Benutzername und Passwort sind kein Ersatz für diesen Header bei der anschließenden Datensuche.

Das Beispiel erwartet Server, Datenbank, Layout, Konto und Passwort als Umgebungsvariablen. Die Suchfelder müssen im Layout vorhanden sein. Die Zeitlimits im Code sind Beispielwerte für den Client und keine Zusage zur Antwortzeit des Servers.

import os
from urllib.parse import quote
import requests

server = os.environ['FM_SERVER'].rstrip('/')
database = quote(os.environ['FM_DATABASE'], safe='')
layout = quote(os.environ['FM_LAYOUT'], safe='')
base = f'{server}/fmi/data/vLatest/databases/{database}'
timeout = (5, 30)

def checked(response):
    response.raise_for_status()
    payload = response.json()
    messages = payload.get('messages', [])
    if not messages or any(str(m.get('code')) != '0' for m in messages):
        raise RuntimeError('FileMaker meldet einen API-Fehler')
    return payload['response']

with requests.Session() as client:
    login = client.post(
        f'{base}/sessions', json={},
        auth=(os.environ['FM_USER'], os.environ['FM_PASSWORD']),
        timeout=timeout,
    )
    token = checked(login)['token']
    client.headers['Authorization'] = f'Bearer {token}'
    try:
        result = checked(client.post(
            f'{base}/layouts/{layout}/_find',
            json={'query': [{'Feldname': 'Wert'}]}, timeout=timeout,
        ))
        records = result['data']
        # Verarbeiten Sie records nur innerhalb der vorgesehenen Datenfreigabe.
    finally:
        checked(client.delete(f'{base}/sessions/{quote(token, safe="")}', timeout=timeout))

Fehler und Rechte fachlich behandeln

Ein erfolgreich übertragener HTTP-Request kann einen FileMaker-Fehler enthalten. Werten Sie daher auch die Meldungen der API aus. Eine Suche ohne Treffer, ein abgelaufener Token und fehlende Rechte benötigen unterschiedliche Reaktionen. Das kompakte Beispiel bricht bei einem API-Fehler ab; für eine Anwendung legen Sie passende Fehlerantworten und eine begrenzte Wiederanmeldung fest.

Nutzen Sie ein Konto mit den benötigten Rechten. Prüfen Sie anhand repräsentativer Testdaten, ob Layouts und Berechtigungen tatsächlich die vorgesehene Auswahl liefern. Große Ergebnismengen brauchen eine geplante Pagination. Bei Schreibzugriffen müssen außerdem Wiederholungen und mögliche doppelte Änderungen berücksichtigt werden.

Die Integration schrittweise freigeben

Beginnen Sie mit einer lesenden Abfrage in einer Testumgebung. Prüfen Sie anschließend leere Ergebnisse, ungültige Eingaben, fehlende Rechte und die Beendigung der Sitzung. Halten Sie Tokens und vertrauliche Feldwerte aus Protokollen heraus. Erst ein getesteter Ablauf mit dem tatsächlichen Layout zeigt, ob die Integration zu Ihrer Datei passt.

Weiterführende Dokumentation: Claris: Anmeldung einer Datenbanksitzung.

Weiterführende Dokumentation: Claris: Datensuche.

Teilen Sie diesen Artikel

Kunden

Noch keine Kommentare. Schreiben Sie den ersten!

Einen Kommentar hinterlassen

Wird nicht veröffentlicht

Verwandte Artikel

Projekt im Kopf?

Wir entwickeln maßgeschneiderte Software und KI-Lösungen. Lassen Sie uns gemeinsam Ihr nächstes Projekt starten.

Kostenloses Erstgespräch