Prof. Dr. Christian Drumm
Eine Programmierschnittstelle, häufig nur kurz API genannt (von englisch Application Programming Interface), ist ein Programmteil, der von einem Softwaresystem anderen Programmen zur Anbindung an das System zur Verfügung gestellt wird.[1]
Stellen Sie sich vor, Sie gründen heute einen Uber-Konkurrenten. Überlegen Sie:
Wie können Daten oder Funktionen als APIs bereitgestellt werden? Welche Komponenten werden benötigt?
{ "product": { "id": 12345, "name": "Mountain Bike", "price": 1200.0, "currency": "USD", "stock": 10 } }
Strings: Zeichenketten in doppelten Anführungszeichen (" ").
" "
"name": "Mountain Bike"
Numbers: Ganzzahlen oder Fließkommawerte.
"price": 1200.0
Booleans: Logische Werte true oder false.
true
false
"inStock": true
Arrays: Geordnete Auflistungen in [ ].
[ ]
"items": ["Mountain Bike", "Helmet", "Gloves"]
Objects: Verschachtelte Schlüssel-Wert-Paare ({ }).
{ }
{ "name": "Helmet", "price": 49.99 }
{ "product": { "id": 12345, "name": "Mountain Bike", "price": 1200.0, "currency": "USD", "sizes": [ { "size": "M" }, { "size": "L" } ] } }
Das Hypertext Transfer Protocol (HTTP) ist das Kommunikationsprotokoll des World Wide Web. Es regelt, wie Nachrichten zwischen Client und Server ausgetauscht werden.[3]
Client (Browser) Server (API) | | | -- HTTP Request (GET /products) --> | | | | <-- HTTP Response (200 OK + JSON) - | | |
SELECT
GET /products
INSERT
POST /products/add
UPDATE
PUT /products/1
DELETE
DELETE /products/1
GET /products/1
GET /products/99999
/v1/products
API-Ausfälle und Sicherheitslücken können direkten Umsatzverlust bedeuten. Laut einer Studie von Gartner verursachen API-bezogene Sicherheitsvorfälle bis 2025 bei über 50 % der Unternehmen Datenverluste.[4]
REST (Representational State Transfer) ist ein Architekturstil für verteilte Systeme, der beschreibt, wie Ressourcen im Web über standardisierte Schnittstellen adressiert und manipuliert werden.[2]
┌──────────────┐ ┌──────────────┐ │ Client │ ← HTTP → │ Server │ │ (Browser) │ │ (API) │ │ Darstellung │ │ Daten/Logik │ └──────────────┘ └──────────────┘
Ein Webshop kann sein Frontend (App, Website) anpassen, ohne die Backend-API ändern zu müssen. geringere Entwicklungskosten höhere Flexibilität
Ein Webshop kann sein Frontend (App, Website) anpassen, ohne die Backend-API ändern zu müssen.
Stellen Sie sich einen Schalter bei einer Behörde vor: Bei jedem Besuch müssen Sie Ihren Ausweis erneut vorzeigen – der Sachbearbeiter erinnert sich nicht an Sie.
1. Anfrage: GET /products/1 → Server antwortet (200 OK, Cache: 60s) 2. Anfrage: GET /products/1 → Antwort kommt aus dem Cache (kein Server-Kontakt) 3. Nach 70s: GET /products/1 → Server wird erneut kontaktiert
Caching reduziert Serverkosten und verbessert die Ladezeiten für Nutzer. Amazon stellte fest, dass 100ms langsamere Ladezeiten ca. 1 % Umsatzverlust bedeuten.[5]
Mehrschichtige Systeme ermöglichen Skalierung und Sicherheit, ohne dass der Client angepasst werden muss.
Der Großteil der Bilder, CSS- und JS-Dateien wird aus dem lokalen Cache geladen.
Amazon nutzt CDNs. Selbst wenn der Server in den USA steht, kommt die Antwort von einem Server in Ihrer Nähe (z.B. Frankfurt).
GET
/products
/products/1
POST
PUT