🔌 · Services verbinden

APIs: Die Verbindungsschicht des modernen Webs

APIs sind die Sprache in der Services miteinander reden. Wer APIs versteht, kann praktisch jeden externen Dienst in eigene Workflows einbinden – von Wetterdaten über Bankkonten bis hin zu KI-Modellen.

RESTJSONOAuthAPI-KeyHTTP

REST-APIs verstehen – die Grundlagen die reichen

REST (Representational State Transfer) ist das dominante Paradigma für Web-APIs. Die Kernidee: Ressourcen (Nutzer, Produkte, Nachrichten) werden über URLs adressiert, Aktionen werden über HTTP-Methoden ausgedrückt.

  • GET /users/42 – Nutzer lesen
  • POST /users – Neuen Nutzer erstellen (Daten im Body)
  • PUT/PATCH /users/42 – Nutzer aktualisieren
  • DELETE /users/42 – Nutzer löschen

Responses kommen als JSON, Status-Codes kommunizieren das Ergebnis: 200 OK, 201 Created, 400 Bad Request, 401 Unauthorized, 404 Not Found, 500 Server Error.

Für n8n-Workflows ist das die wichtigste Grundlage: Fast jeder HTTP-Node-Aufruf folgt diesem Muster.

Authentifizierung: API-Keys, OAuth und Bearer-Token

APIs ohne Auth sind selten – hier die häufigsten Methoden:

  • API-Key im Header: Einfachste Methode. Authorization: Bearer DEIN_KEY oder X-API-Key: DEIN_KEY. Für einfache Service-to-Service-Kommunikation in KI-Automatisierungen ideal.
  • OAuth 2.0: Standard wenn User-Berechtigungen delegiert werden (Login mit Google, GitHub-Zugriff). Aufwändiger zu implementieren aber der Goldstandard für User-Auth.
  • JWT (JSON Web Token): Self-contained Token mit Claims. Server muss keine Session speichern, kann die Gültigkeit direkt aus dem Token prüfen.
# API-Aufruf mit Python (requests) import requests headers = {"Authorization": f"Bearer {API_KEY}"} response = requests.get("https://api.example.com/data", headers=headers) if response.status_code == 200: data = response.json() else: print(f"Fehler: {response.status_code} – {response.text}")

APIs in eigenen Projekten und Automatisierungen einsetzen

APIs konsumieren ist eine Sache – eigene APIs bauen eine andere. Beides hat seinen Platz:

  • Externe APIs konsumieren: OpenWeather, Telegram Bot API, GitHub API, OpenAI API – alles in n8n oder direkt per Python via HTTP-Node oder requests-Library.
  • Eigene APIs bauen: Wenn verschiedene Services auf eigene Daten zugreifen sollen. Mit Bash und PHP schnell möglich, mit Python (FastAPI) professionell.
  • Webhooks vs. APIs: Für reaktive Szenarien Webhooks bevorzugen. Für abfragende Szenarien (Daten holen wann ich will) APIs.

Wichtig für Automatisierungen: Rate Limits beachten. Viele APIs begrenzen Anfragen (z.B. 100/Minute). Bei KI-Workflows mit hohem Volumen immer Retry-Logik und Backoff einbauen.

Häufige Fragen zu APIs

Fast alle modernen APIs haben Swagger/OpenAPI-Dokumentation – oft unter /docs oder /api-docs der API-URL. Alternativ Postman-Collections des Anbieters. Für Experimente ist Postman oder das HTTP-Request-Tool in n8n ideal zum Testen.

Pflicht-Muster: Status-Code prüfen, bei 4xx nicht wiederholen (Fehler in der Anfrage), bei 5xx mit exponentiellem Backoff wiederholen. In n8n Error-Workflows einrichten die bei fehlgeschlagenen HTTP-Aufrufen eine Telegram-Benachrichtigung senden.

GraphQL erlaubt präzise Abfragen – du definierst exakt welche Felder du brauchst, kein Over- oder Under-Fetching. Besser wenn du nur einen Teil komplexer verschachtelter Daten brauchst oder eine API viele verschiedene Clients hat. Für einfache Automatisierungen ist REST oft pragmatischer.

Niemals im Code oder Git-Repository. In n8n: Credential-Store nutzen. In eigenen Projekten: Environment-Variablen (.env-Datei, nicht ins Repo commiten). Auf Docker-Servern: Docker Secrets oder env-Variablen in der Compose-Konfiguration.