🔌 API & REST
Wie Webseiten und Dienste miteinander kommunizieren
Von den Grundlagen bis zu RESTful APIs
➡️ Jetzt unverbindlich anfragen
🛠️ Empfohlene Tools für Entwickler
Diese Tools nutze ich selbst – sie helfen Ihnen, Ihre Projekte professionell umzusetzen und zu vermarkten.
📄 HTML Executable
HTML-Dateien und Websites als eigenständige Windows-EXE-Dateien kompilieren.
Jetzt ansehen →⚡ ExeOutput for PHP
PHP-Anwendungen in eigenständige Windows-EXE-Dateien kompilieren.
Jetzt ansehen →* Affiliate-Links: Bei einem Kauf über diese Links erhalten wir eine kleine Provision – für Sie entstehen keine zusätzlichen Kosten.
1. Was ist eine API?
API steht für Application Programming Interface (deutsch: Programmierschnittstelle). Eine API ist ein Vermittler, über den verschiedene Programme miteinander kommunizieren können.
📡 Analogie: Kellner im Restaurant
Stellen Sie sich eine API wie einen Kellner im Restaurant vor:
- Sie (die Webseite) bestellen etwas beim Kellner (die API)
- Der Kellner gibt die Bestellung an die Küche (den Server) weiter
- Die Küche bereitet die Bestellung zu (verarbeitet die Anfrage)
- Der Kellner bringt Ihnen das Essen (die Antwort)
🧩 Wofür werden APIs genutzt?
2. Wie funktioniert eine API?
Eine API funktioniert nach dem Client-Server-Prinzip:
(Webseite/App)
(Schnittstelle)
(Datenbank)
Anfrage → Client fragt API → API holt Daten vom Server → Antwort zurück
📝 Eine einfache API-Anfrage
// Anfrage an eine Wetter-API GET /api/wetter/berlin // Antwort der API (JSON) { "stadt": "Berlin", "temperatur": 22, "bedingung": "sonnig", "luftfeuchtigkeit": 65 }
3. Was ist REST?
REST (Representational State Transfer) ist ein Architektur-Stil für APIs. RESTful APIs sind der Standard im modernen Web.
📌 Die 6 Prinzipien von REST
- Client-Server: Trennung zwischen Client (Webseite) und Server
- Stateless: Jede Anfrage ist unabhängig – kein Server-Speicher über Anfragen hinweg
- Cacheable: Antworten können zwischengespeichert werden
- Einheitliche Schnittstelle: Standardisierte HTTP-Methoden und -Formate
- Layered System: Die API kann über Zwischenschichten laufen
- Code on Demand (optional): Server kann Code an Client senden
📊 REST vs. SOAP
| Merkmal | REST | SOAP |
|---|---|---|
| Format | JSON, XML, Text | Nur XML |
| Protokoll | HTTP | HTTP, SMTP, TCP |
| Performance | Schnell (leichtes Format) | Langsam (viel XML) |
| Komplexität | Einfach | Komplex |
| Wird genutzt für | Web-APIs, Mobile Apps | Banking, Enterprise |
4. Die HTTP-Methoden
RESTful APIs verwenden HTTP-Methoden, um verschiedene Aktionen zu beschreiben.
| Methode | Bedeutung | CRUD | Beispiel |
|---|---|---|---|
| GET | Daten abrufen | Read | GET /api/kunden |
| POST | Daten erstellen | Create | POST /api/kunden |
| PUT | Daten vollständig aktualisieren | Update | PUT /api/kunden/1 |
| PATCH | Daten teilweise aktualisieren | Update | PATCH /api/kunden/1 |
| DELETE | Daten löschen | Delete | DELETE /api/kunden/1 |
🎯 Live-Demo: HTTP-Methoden
Simulierte API-Aufrufe:
5. Statuscodes
Statuscodes zeigen an, ob eine API-Anfrage erfolgreich war oder nicht.
| Code | Kategorie | Bedeutung | Beispiel |
|---|---|---|---|
| 200 | Erfolg | OK – Alles hat funktioniert | Daten erfolgreich abgerufen |
| 201 | Erfolg | Created – Neues Objekt erstellt | Neuer Kunde angelegt |
| 204 | Erfolg | No Content – Erfolgreich, aber keine Antwort | DELETE erfolgreich |
| 301 | Umleitung | Moved Permanently – Weiterleitung | Seite wurde dauerhaft verschoben |
| 400 | Client-Fehler | Bad Request – Fehlerhafte Anfrage | Pflichtfeld fehlt |
| 401 | Client-Fehler | Unauthorized – Nicht autorisiert | Kein gültiger API-Key |
| 403 | Client-Fehler | Forbidden – Zugriff verweigert | Keine Berechtigung |
| 404 | Client-Fehler | Not Found – Nicht gefunden | Kunde mit ID 999 existiert nicht |
| 405 | Client-Fehler | Method Not Allowed – Methode nicht erlaubt | DELETE ist für diese Route nicht erlaubt |
| 429 | Client-Fehler | Too Many Requests – Zu viele Anfragen | Rate Limit überschritten |
| 500 | Server-Fehler | Internal Server Error – Server-Fehler | Datenbank-Verbindung fehlgeschlagen |
| 503 | Server-Fehler | Service Unavailable – Dienst nicht verfügbar | Wartungsarbeiten |
🎯 Live-Demo: Statuscodes
6. JSON – Das Daten-Format
JSON (JavaScript Object Notation) ist das Standard-Format für den Datenaustausch bei REST-APIs.
📝 JSON-Beispiel
• Schlüssel (Keys) stehen in Anführungszeichen
• Werte können Strings, Zahlen, Booleans, Arrays oder Objekte sein
• Objekte werden mit
{ } umschlossen, Arrays mit [ ]
🎯 Live-Demo: JSON anzeigen
7. Endpoints & Routen
Endpoints sind die URLs, über die eine API angesprochen wird. Sie beschreiben, welche Ressource angesprochen wird.
📡 Beispiel: API für eine Blog-Plattform
GET /api/benutzer // Alle Benutzer
GET /api/benutzer/1 // Benutzer mit ID 1
POST /api/benutzer // Neuen Benutzer erstellen
PUT /api/benutzer/1 // Benutzer 1 aktualisieren
DELETE /api/benutzer/1 // Benutzer 1 löschen
// Beiträge
GET /api/beitraege // Alle Beiträge
GET /api/beitraege/1 // Beitrag mit ID 1
POST /api/beitraege // Neuen Beitrag erstellen
// Kommentare
GET /api/beitraege/1/kommentare // Alle Kommentare zu Beitrag 1
/kunden statt /kunde).
8. Authentifizierung
Die meisten APIs benötigen eine Authentifizierung, um sicherzustellen, dass nur berechtigte Nutzer darauf zugreifen können.
🔑 Die 4 häufigsten Methoden
| Methode | Beschreibung | Beispiel |
|---|---|---|
| API-Key | Einfacher Schlüssel, der in der Anfrage mitgesendet wird | ?api_key=abc123 |
| Bearer Token | Token im Authorization-Header | Authorization: Bearer token |
| Basic Auth | Benutzername + Passwort (Base64-codiert) | Authorization: Basic dXNlcjpwYXNz |
| OAuth 2.0 | Moderner Standard für sichere Authentifizierung | Login mit Google, Facebook, etc. |
// Anfrage mit API-Key (als Query-Parameter) GET https://api.wetter.de/aktuell?stadt=berlin&api_key=mein_geheimer_key // Oder im Header GET https://api.wetter.de/aktuell?stadt=berlin X-API-Key: mein_geheimer_key
🎯 Live-Demo: API-Key Authentifizierung
9. API-Sicherheit
Die Sicherheit einer API ist entscheidend, um Daten vor unbefugtem Zugriff zu schützen.
🛡️ Wichtige Sicherheitsmaßnahmen
- HTTPS erzwingen: Alle Anfragen müssen verschlüsselt sein (TLS)
- API-Keys geheim halten: Niemals in Client-Code speichern
- Rate Limiting: Begrenzung der Anfragen pro Benutzer
- Input-Validierung: Alle Eingaben prüfen (SQL-Injection, XSS)
- CORS richtig konfigurieren: Nur erlaubte Domains
- JWT oder OAuth 2.0: Moderne Authentifizierung verwenden
- Logging & Monitoring: Alle API-Zugriffe protokollieren
- Regelmäßige Sicherheitsupdates: Abhängigkeiten aktuell halten
🛡️ Best Practices für API-Sicherheit
- Use HTTPS for all API calls
- Implement proper authentication (OAuth 2.0, JWT)
- Validate all input data
- Use rate limiting to prevent abuse
- Keep API keys secret
- Log all API access
- Regular security audits
10. Rate Limiting
Rate Limiting begrenzt die Anzahl der Anfragen, die ein Client an eine API senden kann – um Überlastung und Missbrauch zu verhindern.
📊 Wie Rate Limiting funktioniert
| Limit | Bedeutung | Beispiel |
|---|---|---|
| 50 Anfragen / Minute | Kostenloser Tarif | OpenWeather (kostenlos) |
| 1000 Anfragen / Tag | Standard-Tarif | Google Maps (kostenlos) |
| 10 Anfragen / Sekunde | Premium-Tarif | Spotify API (Premium) |
| Unbegrenzt | Enterprise-Tarif | Große Unternehmen |
🎯 Live-Demo: Rate Limiting simulieren
Simuliere API-Anfragen mit Rate-Limiting:
11. API-Gateways
Ein API-Gateway ist ein zentraler Einstiegspunkt für alle API-Anfragen. Es übernimmt Aufgaben wie Routing, Authentifizierung, Rate Limiting und Caching.
🧩 Aufgaben eines API-Gateways
- Routing: Anfragen an die richtigen Backend-Services weiterleiten
- Authentifizierung: Prüfung von API-Keys und Tokens
- Rate Limiting: Begrenzung der Anfragen pro Client
- Caching: Zwischenspeicherung von Antworten
- Logging: Protokollierung aller Anfragen
- Transformieren: Antworten umwandeln (z.B. JSON zu XML)
📡 Bekannte API-Gateways
- Kong – Open-Source API-Gateway
- Amazon API Gateway – AWS-Managed Service
- NGINX – Kann als API-Gateway konfiguriert werden
- Apache APISIX – Open-Source API-Gateway
- Zuul – Netflix API-Gateway
12. API-Versionierung
APIs entwickeln sich weiter – Versionierung stellt sicher, dass bestehende Clients nicht brechen, wenn neue Funktionen hinzukommen.
📌 4 gängige Versionierungs-Strategien
| Methode | Beispiel | Vorteil |
|---|---|---|
| URL-Versionierung | /api/v1/kunden |
Einfach und sichtbar |
| Header-Versionierung | Accept-Version: v1 |
Sauber, URL bleibt gleich |
| Query-Parameter | /api/kunden?version=1 |
Einfach zu testen |
| Content-Type | application/vnd.api.v1+json |
Standardisiert |
/api/v1/) ist am einfachsten
und wird am häufigsten verwendet.
13. Bekannte APIs
🎯 Live-Demo: Wetter-API simulieren
📊 14. APIs für Ihr Business – Praxisbeispiele
Hier sind konkrete Beispiele, wie APIs Ihren Arbeitsalltag erleichtern können:
➡️ Mehr erfahren
📈 15. Fallstudie: API-gesteuerte Digitalisierung
📋 Das Problem
Ein Handwerksbetrieb mit 20 Mitarbeitern verwaltete Angebote, Rechnungen und Kundenaufträge noch manuell in Excel – mit vielen Übertragungsfehlern und hohem Zeitaufwand.
🔌 Die Lösung
Ich entwickelte eine API-basierte Lösung, die:
- Angebote aus Excel automatisch in Rechnungen umwandelt
- Kundendaten in eine Datenbank überführt
- Automatische E-Mail-Benachrichtigungen versendet
✅ Das Ergebnis
16. Praxis-Beispiele
📝 Beispiel 1: JavaScript fetch() für eine API
// Eine API mit fetch() aufrufen fetch('https://api.example.com/kunden') .then(response => response.json()) .then(daten => { console.log(daten); }) .catch(fehler => { console.error('Fehler:', fehler); }); // POST-Anfrage mit Daten fetch('https://api.example.com/kunden', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'Anna Müller', stadt: 'Berlin' }) }) .then(response => response.json()) .then(daten => console.log(daten));
📝 Beispiel 2: REST-API mit Node.js (Express)
const express = require('express'); const app = express(); app.use(express.json()); // GET alle Kunden app.get('/api/kunden', (req, res) => { res.json({ status: 'success', data: ['Anna', 'Ben', 'Clara'] }); }); // POST neuen Kunden app.post('/api/kunden', (req, res) => { const neuerKunde = req.body; res.status(201).json({ status: 'success', data: neuerKunde }); }); app.listen(3000, () => { console.log('Server läuft auf Port 3000'); });
17. Übungen zum Mitmachen
📝 Übung 1: RESTful Endpoints
Erstelle RESTful Endpoints für eine "Produkte"-Ressource:
- Alle Produkte abrufen
- Ein bestimmtes Produkt abrufen
- Ein neues Produkt erstellen
- Ein Produkt aktualisieren
- Ein Produkt löschen
GET /api/produkte GET /api/produkte/1 POST /api/produkte PUT /api/produkte/1 DELETE /api/produkte/1
📝 Übung 2: Statuscodes
Welcher Statuscode passt zu welcher Situation?
- Ein Kunde wurde erfolgreich erstellt
- Die angefragte Ressource existiert nicht
- Der API-Key ist ungültig
✅ 201 Created (Kunde erstellt) ❌ 404 Not Found (Ressource existiert nicht) 🔒 401 Unauthorized (Ungültiger API-Key)
📝 Übung 3: JSON erstellen
Erstelle ein JSON-Objekt für einen Blog-Beitrag mit: Titel, Inhalt, Autor, Datum und Tags.
{
"titel": "Mein erster Blog-Post",
"inhalt": "Das ist der vollständige Inhalt...",
"autor": "Anna Müller",
"datum": "2026-08-13",
"tags": ["Python", "Web", "API"]
}
📝 Übung 4: API-Design
Designe eine einfache API für eine To-Do-Liste mit den Operationen: anzeigen, erstellen, aktualisieren, löschen.
// Endpoints GET /api/todos // Alle To-Dos anzeigen GET /api/todos/1 // Ein To-Do anzeigen POST /api/todos // Neues To-Do erstellen PUT /api/todos/1 // To-Do aktualisieren DELETE /api/todos/1 // To-Do löschen // Beispiel JSON für ein To-Do { "id": 1, "text": "API lernen", "erledigt": false }
📝 Übung 5: Rate Limiting
Warum ist Rate Limiting wichtig für APIs?
Rate Limiting schützt die API vor Überlastung und Missbrauch. Es stellt sicher, dass alle Nutzer fair Zugang haben und der Server nicht abstürzt.
18. Tipps & Best Practices
/kunden, nicht /kunde).
/api/v1/kunden) für zukünftige Änderungen.
19. Weiterführende Ressourcen
📚 Online-Lernplattformen
- REST API Tutorial – Umfassendes REST-Tutorial (kostenlos)
- Swagger/OpenAPI – Standard für API-Dokumentation
- Postman – API-Entwicklung und -Testen
- MDN Web Docs – Fetch API – JavaScript fetch() erklärt
- JSON Placeholder – Kostenlose Test-API zum Üben
📖 Empfohlene Bücher
- "RESTful Web APIs" – Leonard Richardson
- "API Design Patterns" – JJ Geewax
- "Web-APIs – Das umfassende Handbuch" – Thomas Theis
- "HTTP – Das umfassende Handbuch" – David Gourley
🛠️ Nützliche Tools
- Postman – API-Entwicklung, Testen und Dokumentation
- Insomnia – Alternative zu Postman (Open Source)
- Swagger UI – Interaktive API-Dokumentation
- JSONPlaceholder – Kostenlose Test-API
- cURL – Kommandozeilen-Tool für HTTP-Anfragen
- HTTPie – Benutzerfreundliches cURL-Ersatz
🌐 Kostenlose APIs zum Üben
- JSONPlaceholder – Fake-API für Posts, Users, Comments
- OpenWeather – Wetter-API (kostenlos bis 60 Anfragen/Minute)
- PokéAPI – Pokémon-Daten (kostenlos, kein API-Key)
- Cat Facts – Zufällige Katzen-Fakten (kostenlos)
- Random User Generator – Zufällige Benutzer-Daten
- CoinGecko – Kryptowährungs-Daten (kostenlos)
🚀 Ihre Digitalisierung – individuell & verlässlich
API-Integration, Excel-Automatisierung, Web-Entwicklung – ich setze Ihre digitale Lösung um.
➡️ Jetzt unverbindlich anfragen✔ Kostenlose Ersteinschätzung ✔ Festpreisangebot ✔ 15+ Jahre Erfahrung