ArztAPI logo

Anfragen stellen

Die ArztAPI verwendet GraphQL. Alle Anfragen müssen als POST-Anfragen mit einem JSON-Body an den API-Gateway-Endpunkt gesendet werden.

Das Gateway leitet Ihre GraphQL-Abfragen an Supabase pg_graphql weiter.

Der JSON-Body muss ein Feld query enthalten und kann optional ein Feld variables enthalten, wenn Ihre Abfrage Variablen verwendet.

Tipp: Code kopieren

Alle Code-Beispiele auf dieser Seite können durch Anklicken direkt in die Zwischenablage kopiert werden.

Beispielanfrage mit cURL:

curl --location 'https://api.arztapi.com/functions/v1/api-gateway' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "query": "query GetFirstProfessional { professionalsCollection(first: 1) { edges { node { id first_name last_name title } } } }",
    "variables": {}
  }'

Denken Sie daran, YOUR_API_KEY durch Ihren tatsächlichen API-Schlüssel zu ersetzen.

Authentifizierung

Authentifizieren Sie Anfragen, indem Sie Ihren API-Schlüssel mitsenden. Der empfohlene Header ist:

x-api-key: YOUR_API_KEY

Einige Integrationen verwenden alternativ:

Authorization: Bearer YOUR_API_KEY

Behandeln Sie Ihren API-Schlüssel vertraulich und vermeiden Sie, ihn in Client-Code zu veröffentlichen, sofern das nicht ausdrücklich gewünscht ist.

GraphQL verstehen

Wenn Sie neu bei GraphQL sind, finden Sie hier einige grundlegende Konzepte:

  • Abfragen: Lesevorgänge zum Abrufen von Daten. Sie geben genau an, welche Daten Sie benötigen.
  • Felder: Die spezifischen Datenelemente, die Sie zu einem Objekt abrufen möchten (z. B. first_name, email).
  • Argumente: Parameter, die Sie an Felder übergeben können, um die zurückgegebenen Daten zu beeinflussen (z. B. eine id, um einen bestimmten Professional abzurufen, oder first: 5, um die Anzahl der Ergebnisse zu begrenzen).
  • Variablen: Eine Möglichkeit, dynamische Werte in Ihre Abfragen einzubringen.
  • Sammlungen: Dienen zum Abfragen von Listen von Elementen (z. B. professionalsCollection). Diese liefern normalerweise ein Array edges, wobei jeder Edge ein node (das tatsächliche Datenobjekt) und einen cursor (für die Paginierung) enthält. Sammlungen enthalten auch häufig totalCount.
  • Knoten: Einzelne Datenobjekte (z. B. ein bestimmter Professional oder eine Einrichtung).

Suchfunktionen nutzen (empfohlen)

Für kombinierte Filter (z. B. Einrichtungsname + PLZ/Stadt + Spezialisierung) empfehlen wir die exponierten Postgres-Suchfunktionen, z. B.:

  • search_facilities
  • search_facilities_by_zip_and_name
  • search_facilities_by_city_and_name
  • search_professionals

Wichtig: Funktionsargumente richtig übergeben

In diesem Schema werden Funktionsargumente direkt übergeben: search_facilities(p_name_pattern: "...", ...).

Wenn Sie search_facilities(args: { ... }) senden, kann ein Fehler auftreten wie: Input contains extra keys ["args"].

Wichtig: Funktionsresultate sind oft Connections

Viele set-returning Funktionen werden als Connection exponiert. Wenn Sie Felder wie id direkt auf dem Rückgabewert abfragen, kann ein Fehler auftreten wie unknown field in connection.

Nutzen Sie stattdessen edges { node { ... } }. Siehe Beispiele.

Um zu prüfen, welche Funktionen in Ihrem Schema verfügbar sind, können Sie GraphQL-Introspektion verwenden:

query IntrospectQueryFields {
  __schema {
    queryType {
      fields {
        name
      }
    }
  }
}