APIs, JSON and REST

APIs, JSON und REST

Informationssysteme - Sommersemester 2026

Prof. Dr. Christian Drumm

Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

Lernziele

  • Die Grundlagen und Konzepte von (Web)-APIs verstehen
  • Den Zweck und die Struktur von JSON als Datenformat erklären
  • REST als Architekturstil kennenlernen und verstehen, wie HTTP dabei
    genutzt wird
  • Beispiele für die Nutzung von REST-APIs kennenlernen
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

Agenda

  1. Web-basierte APIs
  2. Von Datenbanken zu APIs
  3. JSON
  4. HTTP
  5. REST
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

Was ist eine API?

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]

  • Stabile Schnittstelle
  • Abstraktion
  • Beispiele
    • Windows, MacOS oder Linux APIs
    • Excel VBA API
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

Historie: Web-basierte APIs

Datum Wer Was
2000 - Februar Salesforce XML-APIs für salesforce.com
2000 - November eBay eBay API und eBay Developers Program
2002 - Juli Amazon Amazon Web Services
2004 - August Flickr API, die das Einbetten von Bildern in Webseiten ermöglicht
2004 - August Facebook API zum Zugriff auf z.B. Profil, Freunde, Photos
2004 - September Twitter API, die Zugriff auf fast alle Funktionen ermöglicht
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

Übung: Funktionen für einen Uber-Konkurrenten planen

Stellen Sie sich vor, Sie gründen heute einen Uber-Konkurrenten. Überlegen Sie:

Schritt 1: Funktionale Anforderungen

Welche Hauptfunktionen braucht Ihre Plattform, um erfolgreich zu sein?
Beispiele:

  • Routenplanung
  • Zahlungssysteme
  • Kommunikation

Schritt 2: Entscheidung: Selber bauen oder zukaufen?

Für jede Funktion müssen Sie entscheiden, ob Sie diese selbst entwickeln oder zukaufen.

  • Auf welcher Basis treffen Sie diese Entscheidung?
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

API-Geschäftsmodelle: Beispiele aus der Praxis

Was ist ein API-Geschäftsmodell?

  • Unternehmen bieten Kunden APIs an, die ihnen den Zugang zu bestimmten Funktionen oder Daten ermöglichen.
  • Monetarisierung geschieht durch API-Aufrufe, Abonnements oder volumenbasierte Preise.
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

Beispiele erfolgreicher API-Geschäftsmodelle

1. Stripe: Zahlungs-APIs

  • Was es bietet: Akzeptieren von Online-Zahlungen, Subscriptions, Betrugsprävention.
  • Besonderheiten:
    • API einfache Integration mit wenigen Codezeilen.
    • Transparente Gebührenstrukturen (~ 2.9% + 0.30 € pro Transaktion).

2. Twilio: Kommunikations-APIs

  • Was es bietet: Senden von SMS, E-Mails oder Sprachanrufe direkt in Apps integriert.
  • Besonderheiten:
    • Flexible Pay-as-you-go-Tarife (z.B. $0.0079/SMS).
    • Stabiles Backend mit weltweitem Zugang (z.B. Uber nutzt Twilio für Fahrer-Benachrichtigungen).
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

Agenda

  1. Web-basierte APIs
  2. Von Datenbanken zu APIs
  3. JSON
  4. HTTP
  5. REST
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

Von Datenbanken zu APIs

Wie können Daten oder Funktionen als APIs bereitgestellt werden? Welche Komponenten werden benötigt?

  1. Datenquelle
    • Typischerweise eine (relationale) Datenbank.
    • Beispiel: Kundeninformationen, Produktkataloge oder Transaktionsdaten.
  2. Applikation
    • Stellt auf der Basis der Daten Funktionen zur Verfügung.
    • Beispiel: Bestellung anlegen, Kunden über Status des Auftrags informieren.
  3. Datenformat
    • Daten müssen in ein plattformunabhängiges Format serialisiert werden.
    • Beispiel: EDIFACT, XML, JSON
  4. Protokoll
    • Kommunikation erfolgt über standardisierte (Netzwerk)Protokolle.
    • Beispiel: SOAP, HTTP
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

Agenda

  1. Web-basierte APIs
  2. Von Datenbanken zu APIs
  3. JSON
  4. HTTP
  5. REST
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

Einführung: JSON

Was ist JSON?

  • JSON (JavaScript Object Notation) ist ein
    • leichtgewichtiges
    • textbasiertes Format zur Darstellung
    • strukturierter Daten.
  • Ursprünglich für JavaScript entwickelt, inzwischen der de-facto-Standard für Datenaustausch in Webanwendungen und APIs.
  • Gründe für die Beliebtheit:
    • Einfachheit:
      • Textbasiert und damit menschenlesbar.
      • Wenige Grundelement.
    • Kompatibilität: Wird von fast allen modernen Programmiersprachen unterstützt.
    • Standardisierung: JSON ist als ISO/IEC 21778:2017 standardisiert.
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

JSON-Syntax

Struktur

  • JSON-Dokumente bestehen aus Schlüssel-Wert-Paaren.
  • Schlüssel ist immer eine Zeichenkette
  • Wert kann verschiedene Datentypen besitzen
{
  "product": {
    "id": 12345,
    "name": "Mountain Bike",
    "price": 1200.0,
    "currency": "USD",
    "stock": 10
  }
}
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

JSON-Syntax

Datentypen

  1. Strings: Zeichenketten in doppelten Anführungszeichen (" ").

    "name": "Mountain Bike"
    
  2. Numbers: Ganzzahlen oder Fließkommawerte.

    "price": 1200.0
    
  3. Booleans: Logische Werte true oder false.

    "inStock": true
    
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

JSON-Syntax

Container

  1. Arrays: Geordnete Auflistungen in [ ].

    "items": ["Mountain Bike", "Helmet", "Gloves"]
    
  2. Objects: Verschachtelte Schlüssel-Wert-Paare ({ }).

    {
      "name": "Helmet",
      "price": 49.99
    }
    
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

JSON-Syntax

{
  "product": {
    "id": 12345,
    "name": "Mountain Bike",
    "price": 1200.0,
    "currency": "USD",
    "sizes": [
      {
        "size": "M"
      },
      {
        "size": "L"
      }
    ]
  }
}
  • Hinweis: Verschachtelte Strukturen sind typisch für komplexe JSON-Dokumente, wie sie in APIs genutzt werden (z. B. Produktdetails).
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

Agenda

  1. Web-basierte APIs
  2. Von Datenbanken zu APIs
  3. JSON
  4. HTTP
  5. REST
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

HTTP: Definition & Konzept

Was ist HTTP?

Das Hypertext Transfer Protocol (HTTP) ist das Kommunikationsprotokoll des World Wide Web. Es regelt, wie Nachrichten zwischen Client und Server ausgetauscht werden.[3]

Aufbau einer HTTP-Kommunikation

Client (Browser)                        Server (API)
      |                                      |
      |  -- HTTP Request (GET /products) --> |
      |                                      |
      |  <-- HTTP Response (200 OK + JSON) - |
      |                                      |
  • Request: Methode + URL + Header + (optional) Body
  • Response: Statuscode + Header + Body (z. B. JSON-Daten)
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

HTTP-Methoden und CRUD

Die vier wichtigsten HTTP-Methoden

HTTP-Methode CRUD SQL-Äquivalent Beispiel (dummyjson.com)
GET Read SELECT GET /products
POST Create INSERT POST /products/add
PUT Update UPDATE PUT /products/1
DELETE Delete DELETE DELETE /products/1
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

HTTP GET im Browser

Übung: Erste API-Anfrage

  1. Öffnen Sie Ihren Browser und navigieren Sie zu:
    👉 https://dummyjson.com/products/1
  2. Sie sehen die JSON-Antwort direkt im Browser – das ist ein HTTP GET!

Mit den Browser Developer Tools

  1. Drücken Sie F12 (oder Rechtsklick → „Untersuchen")
  2. Wechseln Sie zum Tab Netzwerk (Network)
  3. Laden Sie die Seite https://dummyjson.com/products neu
  4. Klicken Sie auf die Anfrage und untersuchen Sie:
    • Request-Methode: GET
    • Status Code: 200 OK
    • Response Headers: Content-Type: application/json
    • Response Body: Die JSON-Daten der Produkte
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

HTTP-Statuscodes

Die wichtigsten Statuscodes im Überblick

Code Bedeutung Beispiel
200 OK – Anfrage erfolgreich GET /products/1 → Produkt gefunden
201 Created – Ressource erstellt POST /products/add → Neues Produkt angelegt
400 Bad Request – Fehlerhafte Anfrage Ungültiges JSON im Body
401 Unauthorized – Nicht authentifiziert Fehlender API-Key
404 Not Found – Ressource nicht gefunden GET /products/99999
500 Internal Server Error Serverfehler

Übung: Fehler 404 provozieren

Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

HTTP: Grenzen & Fallstricke

Worauf man achten muss

  • Zustandslosigkeit: Der Server „merkt" sich nichts zwischen zwei Anfragen – Authentifizierung muss bei jeder Anfrage mitgesendet werden
  • Sicherheit: HTTP allein ist unverschlüsselt → immer HTTPS verwenden
  • Rate Limiting: Viele APIs begrenzen die Anzahl der Anfragen pro Zeitraum
  • Versionierung: APIs ändern sich → Versionierung (z. B. /v1/products) ist essenziell

Business-Perspektive

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]

Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

Agenda

  1. Web-basierte APIs
  2. Von Datenbanken zu APIs
  3. JSON
  4. HTTP
  5. REST
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

Definition: REST

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]

Fünf Kernprinzipien

  1. Client-Server
  2. Zustandslosigkeit
  3. Caching
  4. Einheitliche Schnittstelle
  5. Mehrschichtige Systeme
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

REST-Prinzip 1: Client-Server

Trennung von Verantwortlichkeiten

  • Client (z. B. Browser, App) kümmert sich um die Darstellung
  • Server (z. B. API) kümmert sich um die Datenverarbeitung und -speicherung
  • Beide können unabhängig voneinander weiterentwickelt werden
┌──────────────┐              ┌──────────────┐
│    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
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

REST-Prinzip 2: Zustandslosigkeit

Jede Anfrage steht für sich

  • Der Server speichert keinen Zustand zwischen zwei Anfragen
  • Jede Anfrage muss alle Informationen enthalten (z. B. Authentifizierung)
  • Der Server „vergisst" den Client nach jeder Antwort

Analogie

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.

Vorteile

  • Skalierbarkeit: Anfragen können auf beliebig viele Server verteilt werden
  • Ausfallsicherheit: Fällt ein Server aus, übernimmt ein anderer nahtlos
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

REST-Prinzip 3: Caching

Antworten zwischenspeichern

  • Server kann Antworten als cachefähig markieren
  • Client oder Zwischensysteme (z. B. Proxy) speichern die Antwort und liefern sie bei erneuter Anfrage ohne den Server zu kontaktieren

Beispiel

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]

Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

REST-Prinzip 4: Mehrschichtige Systeme

Architektur in Schichten

  • Zwischen Client und Server können weitere Schichten liegen
  • Der Client weiß nicht, ob er direkt mit dem Server oder über Zwischenschichten kommuniziert

Typische Zwischenschichten

Schicht Funktion
Load Balancer Verteilt Anfragen auf mehrere Server
API Gateway Authentifizierung, Rate Limiting, Routing
CDN Caching von statischen Inhalten nah am Nutzer

Mehrschichtige Systeme ermöglichen Skalierung und Sicherheit, ohne dass der Client angepasst werden muss.

Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

REST-Prinzip 3 & 4 bei Amazon

  1. Öffnen Sie F12 → Tab Network
  2. Setzen Sie das Häkchen „Disable cache"
  3. Laden Sie https://www.amazon.de → notieren Sie:
    • Anzahl der Anfragen (unten in der Statusleiste)
    • Gesamte übertragene Datenmenge
    • Gesamte Ladezeit
  4. Entfernen Sie das Häkchen „Disable cache"
  5. Laden Sie die Seite erneut → vergleichen Sie:

    💡 Der Großteil der Bilder, CSS- und JS-Dateien wird aus dem lokalen Cache geladen.

  6. Klicken Sie auf eine Bild- oder CSS-Anfrage und untersuchen Sie die Response Headers:

    💡 Amazon nutzt CDNs. Selbst wenn der Server in den USA steht, kommt die Antwort von einem Server in Ihrer Nähe (z.B. Frankfurt).

Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

REST-Prinzip 5: Einheitliche Schnittstelle

Das zentrale Prinzip von REST

  • Alle Ressourcen werden über einheitliche Mechanismen angesprochen
  • Vier Teilaspekte:
    1. Ressourcen-Identifikation: Jede Ressource hat eine eindeutige URL
    2. Manipulation über Repräsentationen: Daten werden z. B. als JSON übertragen
    3. Selbstbeschreibende Nachrichten: Jede Nachricht enthält alle nötigen Metadaten
    4. Standardisierte Methoden: Feste HTTP-Verben (GET, POST, PUT, DELETE)

Beispiel: Produkt-Ressource

Aktion HTTP URL
Alle Produkte abrufen GET /products
Ein Produkt abrufen GET /products/1
Produkt anlegen POST /products
Produkt ändern PUT /products/1
Produkt löschen DELETE /products/1
Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST

Referenzen

Prof. Dr. Christian Drumm - FH Aachen
APIs, JSON and REST
Prof. Dr. Christian Drumm - FH Aachen