Eine API ist ein Regelwerk, mit dem eine Anwendung Daten und Funktionen einer anderen anfordern kann, ohne deren internen Code zu kennen. Die bekannte Restaurant-Analogie – Sie bestellen von der Karte, die Küche bleibt unsichtbar – verdient genau einen Satz und nicht mehr, denn das Original ist lehrreicher als die Metapher: Eine API ist ein Vertrag, und Verträge sind präzise.
Das Wichtigste in Kürze
| Frage | Antwort |
|---|---|
| Die Definition | Ein festgelegter Vertrag aus Anfrage und Antwort zwischen zwei Programmen |
| Die Schleife | Endpoint + Methode + Header + Body → Statuscode + Antwort |
| Nach Zielgruppe | Öffentlich · Partner · intern · Composite |
| Nach Stil | REST · GraphQL · gRPC · SOAP · WebSocket |
| Der moderne Vertrag | Eine maschinenlesbare Spezifikation (OpenAPI), aus der Doku, Clients und Mocks generiert werden |
Anatomie einer HTTP-API-Anfrage und -Antwort
Kaum eine Erklärung zeigt eine vollständige, deshalb hier ein ganzer API-Aufruf – Anfrage und Antwort, nichts ausgelassen:
POST /classes/Todo HTTP/1.1 ← Methode + Endpoint
Host: api.example-backend.com
X-Api-Key: app-7f2c… ← identifiziert die aufrufende App
Authorization: Bearer eyJhbGci… ← authentifiziert den Benutzer
Content-Type: application/json
{ "title": "Ship the release", "done": false }
HTTP/1.1 201 Created ← Status: erfolgreich, Ressource angelegt
Location: /classes/Todo/xKd91m
Content-Type: application/json
{ "objectId": "xKd91m", "createdAt": "2026-07-24T10:30:00Z" }
Derselbe Aufruf über ein SDK – das nichts anderes ist als genau dieses HTTP, verpackt in die Idiome Ihrer Sprache:
// JavaScript / Node.js — Back4app JS SDK
// One API call: create a record via the auto-generated REST API
const todo = new Parse.Object('Todo');
todo.set('title', 'Ship the release');
todo.set('done', false);
await todo.save();
// Under the hood: POST /classes/Todo with a JSON body → 201 Created
console.log('Created with id', todo.id); // Flutter / Dart — Back4app Flutter SDK
// One API call: create a record via the auto-generated REST API
final todo = ParseObject('Todo')
..set('title', 'Ship the release')
..set('done', false);
await todo.save();
// Under the hood: POST /classes/Todo with a JSON body → 201 Created
print('Created with id ${todo.objectId}'); // iOS / Swift — Back4app Swift SDK
// One API call: create a record via the auto-generated REST API
var todo = Todo()
todo.title = "Ship the release"
todo.done = false
todo.save { result in
// Under the hood: POST /classes/Todo with a JSON body → 201 Created
if case .success(let saved) = result { print("Created with id \(saved.id ?? "")") }
} // Android / Kotlin — Back4app Android SDK
// One API call: create a record via the auto-generated REST API
val todo = ParseObject("Todo")
todo.put("title", "Ship the release")
todo.put("done", false)
todo.saveInBackground { e ->
// Under the hood: POST /classes/Todo with a JSON body → 201 Created
if (e == null) println("Created with id ${todo.objectId}")
} So funktioniert ein API-Aufruf
Drei Eigenschaften dieser Schleife erklären, warum APIs den modernen Stack tragen. Abstraktion: Der Aufrufer braucht den Vertrag, nie die Implementierung – der Anbieter kann hinter der Schnittstelle alles neu schreiben, ohne einen einzigen Client zu brechen. Grenze: Validierung und Berechtigungen sitzen an der Schnittstelle. Deshalb sprechen Clients mit APIs und nie direkt mit der Datenbank – eine API ist keine Datenbank, sondern der Türsteher davor. Komposition: Weil jede Fähigkeit aufrufbar ist, setzen sich Anwendungen aus Diensten zusammen – Authentifizierung von hier, Zahlungen von dort, Karten von einem dritten Anbieter. Und zunehmend nutzen KI-Agenten dasselbe Fundament: Tool Calling ist API-Aufrufen, bei dem ein Modell über die Anfragen entscheidet.
Der Vertrag: was eine API tatsächlich zusagt
Die Seiten, die eine API “einen Vertrag” nennen, zeigen selten einen. Heute ist der Vertrag ein maschinenlesbares Dokument – die OpenAPI Specification ist der Standard für HTTP-APIs –, das jeden Endpoint, jeden Parameter, jedes Schema und jeden Statuscode auflistet. Aus dieser einen Datei generieren Werkzeuge Referenzdokumentation, Client-Bibliotheken, Server-Stubs, Mock-Server und Vertragstests.
Das Bild vom Vertrag hat Biss, weil es um Versionierung geht. Ein zusätzliches Antwortfeld bricht niemanden; ein umbenanntes oder entferntes Feld bricht jeden Konsumenten, und zwar lautlos. Ausgereifte APIs unterscheiden deshalb zwischen additiven und inkompatiblen Änderungen, versionieren ihre Oberfläche (/v1/ oder über Header) und veröffentlichen Deprecation-Fristen. Eine API ohne Änderungsrichtlinie ist ein Vertrag ohne Bedingungen: formal ein Versprechen, praktisch eine Überraschung.
Die Arten von APIs
Nach Suchanfragen gegliedert, denn “Arten von APIs” ist eine eigene Suche: Es gibt zwei Taxonomien, nicht eine.
Nach Zielgruppe:
| Art | Konsumenten | Typische Anliegen |
|---|---|---|
| Öffentlich (offen) | Jeder registrierte Entwickler | Schlüssel, Kontingente, Qualität der Doku, Disziplin bei der Versionierung |
| Partner | Vertragspartner | Rechtliche Vereinbarungen, SLAs, strengere Authentifizierung |
| Intern (privat) | Eigene Teams und Dienste | Microservice-Verträge, schnellere Änderungszyklen |
| Composite | Clients, die gebündelte Daten brauchen | Ein Aufruf orchestriert mehrere – weniger Roundtrips |
Nach Stil: REST (Ressourcen unter URLs, HTTP-Methoden), GraphQL (vom Client geformte Abfragen an einem Endpoint), gRPC (binär, Contract-first, Service-zu-Service), SOAP (XML-Envelopes, Enterprise- und Legacy-Standards) und WebSocket-APIs (bidirektional, persistent) – verglichen in der nächsten Tabelle.
Und ein Absatz, den die Web-Erklärungen auslassen: Nicht jede API ist eine Web-API. Die Standardbibliothek einer Sprache, POSIX-Systemaufrufe sowie die eingebauten Schnittstellen fetch und Geolocation eines Browsers sind allesamt APIs – Verträge zwischen Programmen –, die nie ein Netzwerk überqueren. Die Web-Variante hat den Vertrag lediglich hinter eine URL gelegt.
REST vs. GraphQL vs. gRPC vs. SOAP vs. WebSocket
| Stil | Übertragungsformat | Modell | Stärken | Achten Sie auf |
|---|---|---|---|---|
| REST | JSON über HTTP | Ressourcen + Methoden | Öffentliche CRUD-APIs, Cachebarkeit, Verbreitung | Over-/Underfetching bei festen Strukturen |
| GraphQL | JSON über HTTP | Vom Client zusammengesetzte Abfragen | Vielfältige Clients, verschachtelte Daten | Komplexes Caching, N+1 in Resolvern |
| gRPC | Protobuf über HTTP/2 | Typisierte Prozeduraufrufe | Schnelle interne Service-zu-Service-Kommunikation | Reibung im Browser, binäres Debugging |
| SOAP | XML-Envelopes | Operationen + WS-*-Standards | Legacy-Enterprise, formale Verträge | Geschwätzigkeit, schweres Tooling |
| WebSocket | Frames über einen Socket | Bidirektionale Nachrichten | Echtzeit-Push, Präsenz | Das Protokoll definieren Sie selbst |
Typische Anwendungsfälle
- Mobile und Web-Backends – die Daten jedes Screens kommen über eine API; das Frontend berührt die Datenbank nie.
- Integration von Drittanbietern – Zahlungen, Identität, Messaging, Karten: Fähigkeiten, die per Vertrag gemietet statt neu gebaut werden.
- Kommunikation zwischen Microservices – interne APIs als Nahtstellen, an denen Dienste unabhängig deployt und skaliert werden.
- Automatisierung und Skripting – alles mit einer API lässt sich orchestrieren: CI-Pipelines, Infrastruktur, Content-Workflows.
- KI-Agenten und Tool Calling – Modelle handeln, indem sie APIs aufrufen; ein gut dokumentierter Vertrag wird heute doppelt maschinell genutzt, von SDKs und von Agenten.
Welchen API-Stil sollten Sie wählen? Eine Entscheidungsmatrix
| Ihre Situation | Greifen Sie zu |
|---|---|
| Öffentliches CRUD über Ressourcen | REST – die Lingua franca, cachefreundlich |
| Viele Client-Typen mit jeweils anderen Datenstrukturen | GraphQL-Selection-Sets |
| Internes Service-Mesh mit hohem Durchsatz | gRPC-Verträge |
| Echtzeit, bidirektional, ständig verbunden | WebSocket (oder eine Live-Query-Schicht darüber) |
| Enterprise-Partner mit WS-*-Anforderungen | SOAP – weil der Vertrag es verlangt |
| Ein Screen, der fünf Dienste braucht | Ein Composite-Endpoint oder Backend-for-Frontend |
Grenzen und Trade-offs
- Ein Vertrag bindet auch den Anbieter. Jedes veröffentlichte Feld wird zu etwas, auf das sich jemand verlässt; Weiterentwicklung gelingt über Disziplin bei der Versionierung, nicht über stille Änderungen.
- Netzwerk-APIs erben das Netzwerk. Latenz, Teilausfälle und Wiederholungsversuche gehören zur Semantik jedes entfernten Aufrufs – lokale Funktionsaufrufe brauchten nie Timeout-Richtlinien.
- Abstraktion verbirgt Kosten. Ein harmlos aussehender Aufruf kann teure Arbeit nach sich ziehen; Konsumenten sehen die Karte, nicht die Rechnung der Küche – genau dafür gibt es Rate Limits und Kontingente.
- Die Angriffsfläche wächst mit der Oberfläche. Jeder Endpoint ist eine Tür; Schlüssel identifizieren, autorisieren aber nicht. Echte Authentifizierung (Tokens nach OAuth 2.0, Berechtigungen pro Benutzer) und Eingabevalidierung sind Pflicht.
- Feste Strukturen passen nicht zu jedem Konsumenten. Die Trade-offs von Over- und Underfetching beim Endpoint-Design sind ein eigenes Thema – siehe den Schwesterartikel.
APIs mit Back4app
Back4app ist eine Open-Source-Plattform für Backend as a Service (BaaS), die eine verwaltete Datenbank, automatisch generierte REST- und GraphQL-APIs, Authentifizierung, Dateispeicher und Serverless-Funktionen mit Cloud Code kombiniert. Der entscheidende Unterschied: Die API wird generiert, nicht gebaut. Sie definieren ein Datenmodell, und die Plattform stellt es sofort als REST-Endpoints und GraphQL-Schema bereit – der oben zerlegte Aufruf ist echtes Back4app-Wire-Format –, wobei Schlüssel, Benutzer-Tokens und Berechtigungen auf Klassenebene den Vertrag an der Grenze durchsetzen. Die SDKs nutzen diese API idiomatisch auf jeder wichtigen Plattform, und eigene Operationen werden zu Cloud-Code-Funktionen: neue Endpoints in einer Datei, dieselbe Vertragsdisziplin, kein Server zu betreiben.
Häufige Fragen
Wofür steht API?
Für Application Programming Interface, auf Deutsch Programmierschnittstelle. "Application" ist jede Software mit einer eigenständigen Funktion; "Interface" ist der Vertrag zwischen zwei solchen Programmen – die definierte Menge an Anfragen, die das eine stellen darf, und die Antworten, die das andere zusagt. Entscheidend ist der Programmieraspekt: Eine API ist eine Schnittstelle für Software, so wie eine Benutzeroberfläche eine Schnittstelle für Menschen ist.
Was ist eine API, einfach erklärt?
Ein Bote mit einer Speisekarte. Ein Programm veröffentlicht eine Liste dessen, was es kann – diese Daten abrufen, jene Aktion ausführen –, und andere Programme rufen diese Fähigkeiten über definierte Anfragen auf, ohne je zu sehen, wie die Arbeit intern erledigt wird. Das klassische Beispiel: Eine Wetter-App misst nicht selbst den Himmel, sie ruft die API eines Wetterdienstes auf.
Wie funktioniert eine API?
Über Anfrage und Antwort. Der Client sendet eine Anfrage an einen Endpoint – eine URL, die die Ressource benennt – mit einer Methode, die die Absicht angibt, Headern mit Metadaten und Zugangsdaten und manchmal einem Body mit Daten. Der Server validiert die Anfrage, erledigt die Arbeit und gibt einen Statuscode plus einen Antwort-Body zurück, meist JSON. Jede Integration, die Sie je genutzt haben, lässt sich auf diese Schleife zurückführen.
Was ist ein Beispiel für eine API?
Die Anmeldung über einen Identitätsanbieter, der Zahlungsschritt im Checkout, eine Karte in einer Liefer-App, ein Wetter-Widget – jedes Mal ruft eine Anwendung die API einer anderen auf. Beispiele aus Entwicklersicht sind noch direkter: eine Backend-Plattform, die Ihre Datenbank als HTTP-Endpoints bereitstellt, die Ihre mobile App abfragt.
Was ist der Unterschied zwischen einer API und einem SDK?
Die API ist der Vertrag, ein SDK ist ein Werkzeugkasten, um ihn zu nutzen. Ein SDK verpackt API-Aufrufe in idiomatische Funktionen Ihrer Sprache und ergänzt Session-Verwaltung, Wiederholungsversuche und Typen. Eine API rufen Sie über das Netzwerk auf, ein SDK importieren Sie in Ihren Code – und unter der Haube führt das SDK API-Aufrufe aus.
Welche Arten von APIs gibt es?
Nach Zielgruppe: öffentliche (für jeden Entwickler offen), Partner- (mit Vertragspartnern geteilt), interne (privat innerhalb einer Organisation) und Composite-APIs (bündeln mehrere Aufrufe). Nach Stil: REST, GraphQL, gRPC, SOAP und WebSocket-APIs. Und jenseits des Webs: Bibliotheks- und Betriebssystem-APIs – Schnittstellen gab es lange, bevor HTTP sie transportierte.
Was ist ein API-Endpoint?
Die konkrete URL, unter der eine API Anfragen für eine Ressource entgegennimmt – /users/42 ist der Endpoint für den Benutzer 42. Endpoint plus Methode definieren eine Operation: GET /users/42 liest ihn, DELETE /users/42 entfernt ihn. Die Endpoints bilden die adressierbare Oberfläche der gesamten Schnittstelle.
Was ist ein API-Schlüssel?
Eine generierte Zeichenkette, die ein Client mit jeder Anfrage mitsendet, damit der Anbieter den Aufrufer identifizieren, die Nutzung messen und Limits oder einen Widerruf durchsetzen kann. Er dient eher der Identifikation als der Autorisierung – produktive APIs setzen für Berechtigungen pro Benutzer eine echte Authentifizierung darauf, etwa per OAuth ausgestellte Tokens.