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:
- Ein Client (Website, App, Service) sendet eine Anfrage (Request).
- Der Server prüft Berechtigungen, Daten und Regeln.
- 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.
