Was ist eine API? Kurz erklärt
Eine API (Application Programming Interface) ist eine Schnittstelle, über die Softwarekomponenten miteinander kommunizieren. Im Web-Kontext ermöglichen Web-APIs, dass Frontend, Appsoder externe Dienste Daten vom Backend abrufen oder senden. Die beiden wichtigsten Ansätze für Web-APIs sind REST und GraphQL – beide liefern Daten typischerweise als JSON.
Wie funktioniert eine API?
Eine API arbeitet nach dem Request-Response-Prinzip: Der Client (Browser, App, anderer Server) sendet eine Anfrage an einen definierten Endpunkt. Der Server verarbeitet die Anfrage und liefert eine Antwort – meist als JSON. Die API definiert, welche Endpunkte es gibt, welche Parameter erlaubt sind und welches Format die Antwort hat. APIs laufen über HTTP(S) und nutzen Statuscodes zur Rückmeldung (z. B. 200 OK, 201 Created, 400 Bad Request, 401 Unauthorized, 404 Not Found, 500 Server Error).
- Endpunkte:Jede API hat URLs (Endpunkte), z. B. /api/users oder /api/products. Der Client ruft diese URLs auf und erhält Daten zurück.
- Authentifizierung:Viele APIs erfordern einen API-Key, JWT-Token oder OAuth, um Zugriff zu gewähren. Öffentliche APIs können ohne Authentifizierung nutzbar sein.
- Versionierung:APIs werden weiterentwickelt – Versionierung (z. B. /api/v1/users) ermöglicht Abwärtskompatibilität. Alte Clients funktionieren weiter, neue nutzen erweiterte Endpunkte.
- Dokumentation:Gute APIs sind dokumentiert – Endpunkte, Parameter, Beispiele. Tools wie OpenAPI (Swagger) oder GraphQL Playground erleichtern die Entwicklung.
REST API
REST (Representational State Transfer) ist ein Architekturstil für Web-APIs. Jede Ressource (z. B. Nutzerdaten, Produkte, Bestellungen) hat eine eigene URL. Die HTTP-Methode bestimmt die Aktion: GET (lesen), POST (erstellen), PUT/PATCH (aktualisieren), DELETE (löschen). REST ist etabliert, einfach zu verstehen und von Caching, Proxies und CDNs gut unterstützt.
- Ressourcenorientiert: URLs repräsentieren Ressourcen – /users/123 für einen Nutzer, /orders für Bestellungen. Verschachtelte Ressourcen: /users/123/orders.
- Stateless: Jede Anfrage enthält alle nötigen Informationen. Der Server speichert keinen Sitzungszustand zwischen Anfragen – Skalierung und Caching werden vereinfacht.
- JSON: REST-APIs liefern meist JSON. Alternativ XML. Content-Type und Accept-Header steuern das Format.
GraphQL
GraphQL ist eine Abfragesprache und Spezifikation für APIs. Im Gegensatz zu REST gibt es typischerweise einen Endpunkt. Der Client sendet eine Abfrage (Query) und fordert genau die Felder an, die er braucht. So vermeidet man Overfetching (zu viele Daten) und Underfetching (mehrere Requests nötig). GraphQL eignet sich gut für komplexe Datenstrukturen und flexible Client-Anforderungen.
- Schema: GraphQL definiert ein Typ-System – welche Objekte, Felder und Beziehungen existieren. Der Client kennt die Struktur und kann gezielt abfragen.
- Queries, Mutations, Subscriptions: Queries lesen Daten, Mutations ändern Daten, Subscriptions ermöglichen Echtzeit-Updates. Alles über einen Endpunkt.
- Introspection: GraphQL-APIs können sich selbst beschreiben – Tools wie GraphQL Playground oder Apollo Studio ermöglichen exploratives Testen.
REST vs. GraphQL – wann was?
Beide Ansätze haben Stärken. REST ist weit verbreitet, einfach zu lernen und von vielen Tools unterstützt. GraphQL bietet mehr Flexibilität bei der Datenabfrage und reduziert Roundtrips. Die Wahl hängt vom Projekt ab.
- REST wählen, wenn: Einfache CRUD-Operationen, etablierte Infrastruktur (Caching, CDN), viele unterschiedliche Clients mit ähnlichen Anforderungen. Viele CMS- und E-Commerce-Systeme bieten REST-APIs.
- GraphQL wählen, wenn: Komplexe, verschachtelte Daten, viele verschiedene Clients mit unterschiedlichen Datenbedürfnissen, Echtzeit-Features (Subscriptions). Headless-CMS und moderne Mobile-Apps nutzen oft GraphQL.
- Hybrid: Manche Systeme bieten beides – REST für einfache Fälle, GraphQL für komplexe Abfragen.
APIs im Einsatz
APIs verbinden Systeme: Webseiten holen Inhalte von einem Backend, Mobile-Apps nutzen dieselbe API wie die Web-App. Externe Dienste – Zahlungsanbieter, E-Mail-Versand, Karten – bieten APIs zur Integration. Moderne Architekturen trennen Frontend und Backend; die API ist die Brücke dazwischen.
- Interne APIs: Kommunikation zwischen eigenen Systemen – z. B. Frontend und Backend einer Webanwendung. Oft nicht öffentlich.
- Externe APIs: Öffentliche oder partnerspezifische Schnittstellen – z. B. Stripe für Zahlungen, Google Maps, Wetterdienste. Erfordern oft API-Keys und Rate Limits.
- Headless: Ein Backend (z. B. Headless-CMS) liefert nur Daten per API; das Frontend (Web, App, IoT) entscheidet über die Darstellung.
API im Überblick – Fazit
APIs sind das Rückgrat moderner Anwendungen – sie verbinden Frontend und Backend, ermöglichen Integration externer Dienste und unterstützen plattformübergreifende Architekturen. REST und GraphQL sind die führenden Ansätze; die Wahl hängt von Projekt, Datenmodell und Team-Erfahrung ab.
IVIS MEDIA entwickelt APIs für Webseiten, Web-Apps und plattformübergreifende Anwendungen – von REST-APIs über GraphQL bis zur Integration mit bestehenden Systemen. Mehr zur Webentwicklung
Häufig gestellte Fragen zu APIs
Was ist eine API?
Eine API (Application Programming Interface) ist eine Schnittstelle, über die Softwarekomponenten kommunizieren. Web-APIs ermöglichen, dass Frontend, Apps oder externe Dienste Daten vom Backend abrufen oder senden. REST und GraphQL sind gängige API-Stile für Webanwendungen.
Was ist der Unterschied zwischen REST und GraphQL?
REST nutzt HTTP-Methoden und feste Endpunkte – jede URL liefert eine definierte Ressource. GraphQL hat einen Endpunkt – der Client fragt genau die benötigten Felder ab. REST ist etabliert und einfach; GraphQL flexibler bei komplexen Datenstrukturen und reduziert Overfetching.
Wann REST, wann GraphQL?
REST: Einfache CRUD-Operationen, etablierte Infrastruktur, viele Clients mit ähnlichen Anforderungen. GraphQL: Komplexe verschachtelte Daten, unterschiedliche Client-Bedürfnisse, Echtzeit-Features. Die Wahl hängt von Projekt und Datenmodell ab.
Warum liefern APIs meist JSON?
JSON (JavaScript Object Notation) ist leichtgewichtig, menschenlesbar und von allen gängigen Programmiersprachen unterstützt. XML war früher verbreitet; JSON hat sich für Web-APIs durchgesetzt. GraphQL nutzt ebenfalls JSON für Anfragen und Antworten.
Wie sichert man eine API?
HTTPS, Authentifizierung (API-Key, JWT, OAuth), Autorisierung (Berechtigungen pro Endpunkt), Rate Limiting gegen Missbrauch, Input-Validierung, CORS-Konfiguration. Sensible Daten nie ungeschützt exponieren.
Was ist OpenAPI (Swagger)?
OpenAPI (ehemals Swagger Specification) ist ein Standard zur Beschreibung von REST-APIs. Aus einer OpenAPI-Spezifikation lassen sich Dokumentation, Client-Code und Tests generieren. Swagger UI und verwandte Tools visualisieren und testen APIs – viele Frameworks unterstützen OpenAPI nativ.
