API

Konzept
Auch bekannt als: Application Programming Interface, Schnittstelle, Programmierschnittstelle, REST API, Web API
Schnittstelle die es Programmen ermöglicht miteinander zu kommunizieren - ohne dass du als Mensch eingreifen musst

Was ist eine API?

API steht für Application Programming Interface (deutsch: Anwendungs-Programmierschnittstelle). Eine API ist eine definierte Möglichkeit wie ein Programm mit einem anderen Programm kommunizieren kann.

Restaurant-Analogie

Stell dir ein Restaurant vor:

  • Du (Kunde) = Dein Programm
  • Kellner = API
  • Küche = Das andere Programm/der Service

Du sagst dem Kellner was du willst (API-Request). Der Kellner bringt deine Bestellung in die Küche die sie zubereitet und über den Kellner zurückgibt (API-Response). Du musst nicht wissen wie die Küche funktioniert - du musst nur wissen wie man mit dem Kellner redet.

Praktische Beispiele

  • Wetter-App auf deinem Handy nutzt API von Wetterdienst
  • “Login mit Google”-Button nutzt Google’s OAuth-API
  • Bezahlen mit PayPal nutzt PayPal-API
  • Automatische Übersetzung nutzt DeepL- oder Google-Translate-API

Arten von APIs

Web APIs

Die häufigste Form. Programme kommunizieren über Internet mittels HTTP/HTTPS.

Beispiel: Deine Website fragt per API bei einem Service an: “Gib mir alle Blogposts von heute”

Service antwortet mit Daten (meist JSON-Format).

Betriebssystem APIs

Windows, Linux, macOS bieten APIs damit Programme auf Festplatte zugreifen, Fenster öffnen, Netzwerk nutzen können.

Beispiel: Programm will Datei speichern → nutzt OS-API statt direkt auf Hardware zuzugreifen.

Bibliotheken APIs

Wenn du eine Programmier-Bibliothek nutzt (z.B. für Bildbearbeitung) ist das deren API die du verwendest.

Beispiel: image.resize(800, 600) ist API-Aufruf der Bibliothek.

Wie funktioniert eine Web API?

Request

Dein Programm sendet HTTP-Request an eine URL:

GET https://api.example.com/users/123
Authorization: Bearer abc123token
  • GET = Art der Anfrage (will Daten lesen)
  • URL = Wo die API ist und was du willst
  • Authorization = Nachweis dass du berechtigt bist

Response

Server antwortet mit Daten:

{
  "id": 123,
  "name": "Max Mustermann",
  "email": "max@example.com",
  "created": "2024-01-15"
}

Dein Programm verarbeitet diese Daten weiter.

HTTP-Methoden

  • GET: Daten lesen
  • POST: Neue Daten erstellen
  • PUT: Daten aktualisieren
  • DELETE: Daten löschen

Beispiele:

  • GET /users → Liste aller Nutzer
  • POST /users → Neuen Nutzer anlegen
  • PUT /users/123 → Nutzer 123 ändern
  • DELETE /users/123 → Nutzer 123 löschen

REST APIs

REST (Representational State Transfer) ist ein verbreiteter Stil für Web-APIs.

REST-APIs folgen bestimmten Prinzipien:

  • Nutzen Standard-HTTP-Methoden (GET, POST, PUT, DELETE)
  • URLs repräsentieren Ressourcen (/users, /posts, /comments)
  • Stateless: Jede Anfrage enthält alle nötigen Informationen
  • Antworten meist in JSON-Format

Beispiel einer REST API

Blog-API im REST-Stil:

GET /posts → Alle Blog-Posts
GET /posts/42 → Post mit ID 42
POST /posts → Neuen Post erstellen
PUT /posts/42 → Post 42 bearbeiten
DELETE /posts/42 → Post 42 löschen
GET /posts/42/comments → Kommentare zu Post 42

Authentifizierung

Warum?

APIs müssen wissen wer du bist um:

  • Unbefugten Zugriff zu verhindern
  • Ratenlimits durchzusetzen (z.B. max. 1000 Requests/Stunde)
  • Abrechnungen durchzuführen

API Keys

Einfachster Weg: Service gibt dir einen einzigartigen Schlüssel.

GET /data?api_key=abc123def456

Problem: Wenn jemand deinen Key stiehlt kann er ihn missbrauchen.

Bearer Tokens

Token im Authorization-Header:

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Tokens haben oft Ablaufzeit (z.B. 1 Stunde) für mehr Sicherheit.

OAuth

Komplexestes aber sicherstes Verfahren. Nutzer autorisiert deine App bei einem Service ohne dass du sein Passwort siehst.

Beispiel: “Login mit Google” nutzt OAuth. Du bekommst Token mit dem deine App auf Google-Dienste zugreifen darf.

Quellen

Quellen archiviert am: 2025-01-30