Was sind APIs?
Definition und Grundkonzept
Eine API (Application Programming Interface) ist eine Programmierschnittstelle, die es verschiedenen Anwendungen ermöglicht, miteinander zu kommunizieren. Sie definiert die Regeln und Protokolle, wie Software-Komponenten interagieren können.
API - Erklärt mit einem Restaurant
Stell dir vor, du sitzt in einem Restaurant:
Die Hauptakteure
- Du bist der Client - der Gast, der etwas bestellen möchte
- Der Kellner ist die API - er nimmt deine Wünsche entgegen
- Die Küche ist der Server - hier wird deine Bestellung zubereitet
- Die Speisekarte ist die API-Dokumentation - sie zeigt dir, was möglich ist
Wie funktioniert das?
- Du schaust in die Speisekarte (API-Dokumentation)
- Der Kellner (API) nimmt deine Bestellung auf
- Er bringt sie in die Küche (Server)
- Die Küche bereitet dein Essen zu
- Der Kellner bringt dir das fertige Gericht
Warum ist das praktisch?
- Du musst nicht selbst in die Küche gehen
- Du musst nicht wissen, wie genau dein Essen zubereitet wird
- Der Kellner spricht sowohl deine als auch die "Küchen-Sprache"
- Die Speisekarte zeigt dir genau, was du bestellen kannst
Weitere API Aspekte
Error Handling
- "Tut mir leid, die Küche hat kein Rindfleisch mehr" (404 - Not Found)
- "Diese Zutat gibt es bei uns nicht" (400 - Bad Request)
- "Die Küche ist gerade überlastet" (503 - Service Unavailable)
Authentifizierung
- Reservierung prüfen
- Tisch-Nummer angeben
- Bezahlmethode hinterlegen
Rate Limiting
- "Pro Person maximal 3 Hauptgerichte"
- "Große Gruppen bitte vorher anmelden"
Caching
- Beliebte Gerichte werden vorbereitet
- Getränke stehen gekühlt bereit
Was macht der Kellner (API) genau?
-
Übersetzung
- Deine Bestellung → Küchen-Sprache
- Küchen-Antworten → Gäste-Sprache
-
Validierung
- Prüft, ob Bestellung möglich ist
- Fragt nach bei Unklarheiten
-
Routing
- Bringt Bestellung zur richtigen Küchenstation
- Liefert fertiges Essen zum richtigen Tisch
-
Fehlerbehandlung
- Informiert bei Problemen
- Bietet Alternativen an
Beispiel-"Requests"
GET /menu
// Kellner bringt dir die Speisekarte
POST /order
{
"dish": "Pizza Margherita",
"extras": ["extra cheese"],
"notes": "knusprig bitte"
}
// Du gibst deine Bestellung auf
GET /status/order?id=1337
// Du fragst nach, wo dein Essen bleibt