Schnittstellen Programmierung (API)

Eine API (Application Programming Interface) ist eine Schnittstelle, die es zwei Software-Anwendungen ermöglicht, miteinander zu kommunizieren und Daten auszutauschen.

Was ist eine API?

Eine API (Application Programming Interface) ist eine klar definierte Schnittstelle, über die Software Systeme Daten austauschen und Funktionen nutzen können. APIs sind der Standard, wenn:

  • ein Onlineshop an ERP oder PIM angebunden wird
  • eine Website Inhalte aus einem Headless CMS lädt
  • ein CRM Leads aus Formularen übernimmt
  • Zahlungsanbieter oder Versanddienstleister integriert werden
  • interne Systeme Daten zwischen Services teilen

Kurz: APIs machen aus einzelnen Tools ein zusammenhängendes System.

Wie funktioniert eine API in der Praxis?

In der Webentwicklung ist das häufigste Prinzip:

  1. Ein Client (Website, App, Service) sendet eine Anfrage (Request).
  2. Der Server prüft Berechtigungen, Daten und Regeln.
  3. Der Server liefert eine Antwort (Response), oft als JSON.

Beispiel: einfache REST Anfrage (Code Snippet)

GET /api/products/123
Accept: application/json
Authorization: Bearer <token>

Beispiel: typische JSON Antwort (Code Snippet)

{
  "id": 123,
  "name": "Whey Protein",
  "price": 24.90,
  "currency": "EUR",
  "inStock": true
}

REST vs. GraphQL: wann nutzt man was?

REST

REST ist der verbreitetste Ansatz. Daten werden über klar definierte Endpunkte ausgeliefert.

Stärken:

  • einfach zu verstehen
  • gut zu cachen
  • passt zu vielen Standardfällen

Typische Stolperstelle:

  • viele Requests für komplexe Views, wenn Endpunkte zu kleinteilig sind

GraphQL

GraphQL erlaubt es dem Client, genau die Felder abzufragen, die er braucht.

Stärken:

  • weniger Overfetching und Underfetching
  • flexible Abfragen für komplexe UIs

Typische Stolperstellen:

  • Caching und Performance-Absicherung müssen sauber gelöst sein
  • Abfragen müssen begrenzt werden (Depth, Complexity), sonst wird es teuer

Wichtige Bausteine guter API Programmierung

1) Authentifizierung und Autorisierung

Eine API braucht klare Regeln:

  • Wer darf zugreifen?
  • Welche Rolle darf welche Daten sehen?
  • Welche Aktionen sind erlaubt?

Typische Verfahren:

  • API Keys (eher für Server-zu-Server)
  • OAuth2 (häufig bei Plattformen)
  • JWT Bearer Tokens (häufig bei eigenen Anwendungen)
  • Session-basierte Auth (bei klassischen Webapps)

Wichtig: Rechteprüfung gehört serverseitig in jede relevante Route, nicht nur ins Frontend.

2) Datenvalidierung und Sicherheit

APIs sind ein typisches Ziel für Missbrauch. Grundschutz:

  • Input Validation (Schema, Typen, Längen)
  • Rate Limiting (Login, Public Endpoints)
  • Schutz vor Injection (SQL, NoSQL)
  • CORS sauber konfigurieren
  • Logging ohne sensible Daten (z. B. keine Passwörter, keine vollständigen Tokens)

3) Sauberes Fehlerhandling

Gute APIs sind vorhersagbar. Fehler sollten konsistent sein:

  • passende HTTP Status Codes (400, 401, 403, 404, 429, 500)
  • klare Fehlermeldungen für den Client
  • keine internen Stacktraces nach außen

Beispiel: konsistenter Error Body (Code Snippet)

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Das Feld email ist ungültig.",
    "field": "email"
  }
}

4) Versionierung

APIs ändern sich. Ohne Versionierung brechen Integrationen.

Übliche Strategien:

  • Version im Pfad: /api/v1/…
  • Version per Header
  • klare Deprecation Policy (kommuniziert und dokumentiert)

5) Performance und Caching

Je nach Use Case sind diese Punkte entscheidend:

  • Pagination bei Listen (kein „alles auf einmal“)
  • Filter und Sortierung serverseitig
  • sinnvolle Datenbank-Indizes
  • Caching Layer (CDN, Reverse Proxy, Redis)
  • Timeouts und Retries für externe APIs

Beispiel: Pagination Parameter (Code Snippet)

GET /api/orders?page=2&limit=50

6) Dokumentation und Testing

Eine API ohne Doku ist schwer nutzbar. Minimum:

  • Endpunkte, Parameter, Responses
  • Auth Regeln
  • Beispiele
  • Status Codes
  • Rate Limits

Tools und Formate:

  • OpenAPI (Swagger)
  • Postman Collections
  • Contract Tests (wenn mehrere Teams integrieren)

Typische API Integrationen in Webprojekten

  • Shop System -> ERP (Bestellungen, Lagerbestände)
  • Website -> CRM (Leads, Kontakte)
  • CMS -> Frontend (Content, Media)
  • Payment Provider (Zahlungen, Webhooks)
  • Versanddienstleister (Labels, Tracking)
  • Analytics und Event Tracking

Webhooks: das Gegenstück zur API Abfrage

Bei Webhooks sendet nicht Ihr System die Anfrage, sondern ein externer Dienst ruft Ihre URL auf, wenn etwas passiert.

Beispiel: Payment bestätigt -> Webhook an /webhooks/payment

Wichtig bei Webhooks:

  • Signaturen prüfen
  • idempotente Verarbeitung (doppelte Events möglich)
  • Queue nutzen, wenn die Verarbeitung länger dauert

Checkliste: API Schnittstellen sauber umsetzen (einfach)

  • Auth und Rechte sind klar definiert und serverseitig geprüft
  • Endpunkte sind konsistent benannt und versioniert
  • Validation und Fehler sind standardisiert
  • Pagination und Limits verhindern Datenmüll
  • Rate Limiting und Logging sind aktiv
  • Doku ist aktuell und für Dritte verständlich
  • Tests decken Kernfälle ab
  • Webhooks sind signiert und idempotent

Fazit

Schnittstellen Programmierung (API) entscheidet oft darüber, ob ein System stabil zusammenarbeitet oder ständig „hakt“. Gute APIs sind klar, sicher, versioniert und gut dokumentiert. Genau das macht Integrationen wartbar und sorgt dafür, dass Webprojekte zuverlässig wachsen können.

jetzt online