90-Minuten-Lernaufgabe

Datenformate, Datenquellen und REST-API

Ein aufeinander aufbauendes Übungsblatt zur Analyse, Modellierung und Planung von API-orientierten Produktdaten.

Umfangca. 90 Minuten
NiveauEinsteiger mit Vertiefung
Format5 Leitsatzaufgaben

Ausgangssituation

Ein kleines Unternehmen möchte eine interne Anwendung entwickeln, die Produktdaten aus verschiedenen Quellen sammelt und über eine REST-API nutzbar macht. Die Daten kommen aus einer CSV-Datei, einer JSON-Datei und später aus einer externen API. Deine Aufgabe ist es, die Daten fachlich und technisch zu analysieren, umzuwandeln und API-orientiert zu denken.

CSV JSON Datenquellen REST HTTP-Methoden Statuscodes

1Datenformate verstehen und vergleichen

Du erhältst folgende Beispieldaten zu Produkten:

CSV

id,name,kategorie,preis,lagerbestand
1,Tastatur,Zubehör,29.99,15
2,Maus,Zubehör,14.99,42
3,Monitor,Hardware,199.99,7

JSON

[
  {
    "id": 1,
    "name": "Tastatur",
    "kategorie": "Zubehör",
    "preis": 29.99,
    "lagerbestand": 15
  },
  {
    "id": 2,
    "name": "Maus",
    "kategorie": "Zubehör",
    "preis": 14.99,
    "lagerbestand": 42
  }
]
  1. Beschreibe die strukturellen Unterschiede zwischen CSV und JSON. Gehe dabei auf Lesbarkeit, Verschachtelung, Datentypen und typische Einsatzbereiche ein.
  2. Erkläre, warum JSON für REST-APIs häufig besser geeignet ist als CSV.
  3. Ergänze das JSON-Beispiel um ein weiteres Produkt: id: 3, name: Monitor, kategorie: Hardware, preis: 199.99, lagerbestand: 7.
  4. Überlege: Welche Probleme können entstehen, wenn Preise in einer CSV-Datei als Text statt als Zahl gespeichert werden?
Orientierung: Achte besonders darauf, ob ein Format einfache Tabellen oder komplexe Objektstrukturen besser abbilden kann.

2Datenquellen erkennen und bewerten

Das Unternehmen nutzt verschiedene Datenquellen:

  1. Ordne jede Datenquelle einer Kategorie zu, zum Beispiel Datei, Datenbank oder Webservice.
  2. Beschreibe für jede Datenquelle einen Vorteil und einen Nachteil.
  3. Entscheide, welche Datenquelle sich am besten eignet, wenn Produktdaten regelmäßig aktualisiert werden müssen. Begründe deine Entscheidung.
  4. Erkläre den Unterschied zwischen einer lokalen Datenquelle und einer entfernten Datenquelle.
Vertiefung: Denke bei der Bewertung nicht nur an Technik, sondern auch an Pflegeaufwand, Fehleranfälligkeit, Aktualität und Zugriffsmöglichkeiten.

3Datenmodell für eine REST-API entwickeln

Die Produktdaten sollen später über eine REST-API bereitgestellt werden. Ein Produkt soll folgende Eigenschaften besitzen:

id
name
beschreibung
kategorie
preis
lagerbestand
aktiv
  1. Erstelle ein vollständiges JSON-Objekt für ein einzelnes Produkt.
  2. Erstelle anschließend ein JSON-Array mit mindestens drei Produkten.
  3. Achte darauf, passende Datentypen zu verwenden: id als Zahl, name als Text, beschreibung als Text, kategorie als Text, preis als Zahl, lagerbestand als Zahl und aktiv als Boolean.
  4. Erkläre, warum es wichtig ist, bei API-Daten konsistente Feldnamen und Datentypen zu verwenden.
Praxisbezug: Stell dir vor, ein Frontend liest deine API-Daten automatisch ein. Schon kleine Unterschiede wie lagerBestand statt lagerbestand können Fehler verursachen.

4REST-Endpunkte planen

Die Anwendung soll folgende Funktionen anbieten:

  1. Entwirf passende REST-Endpunkte für diese Funktionen, zum Beispiel GET /produkte.
  2. Ergänze zu jedem Endpunkt die passende HTTP-Methode: GET, POST, PUT oder PATCH, DELETE.
  3. Beschreibe kurz, was bei jedem Endpunkt passiert.
  4. Erkläre den Unterschied zwischen PUT und PATCH.
  5. Ordne mindestens vier sinnvolle HTTP-Statuscodes passenden Situationen zu: 200 OK, 201 Created, 204 No Content, 400 Bad Request, 404 Not Found.
Denkhilfe: REST-Endpunkte sollten möglichst ressourcenorientiert sein. Frage dich: Welche Ressource wird gelesen, erstellt, verändert oder gelöscht?

5Mini-Szenario: Datenabruf und Fehlerbehandlung

Ein Client ruft folgenden Endpunkt auf:

GET /produkte/3

Die API soll folgendes Produkt zurückgeben:

{
  "id": 3,
  "name": "Monitor",
  "beschreibung": "24-Zoll Full-HD Monitor",
  "kategorie": "Hardware",
  "preis": 199.99,
  "lagerbestand": 7,
  "aktiv": true
}
  1. Beschreibe, was beim Aufruf GET /produkte/3 technisch und fachlich passiert.
  2. Formuliere eine mögliche erfolgreiche HTTP-Antwort inklusive Statuscode und JSON-Body.
  3. Formuliere eine mögliche Fehlerantwort, wenn kein Produkt mit der ID 3 existiert.
  4. Vergleiche die Fehlermeldungen {"error":"Not Found"} und {"error":"Produkt nicht gefunden","message":"Es existiert kein Produkt mit der ID 3."}. Welche ist benutzerfreundlicher? Begründe deine Entscheidung.
  5. Zusatzaufgabe: Entwirf eine Antwort für den Fall, dass der Client eine ungültige ID übergibt, zum Beispiel GET /produkte/abc.
Qualitätsmerkmal: Gute API-Fehlerantworten helfen Entwicklern, das Problem schnell zu verstehen und zu beheben.

Erwartetes Ergebnis nach 90 Minuten

Nach der Bearbeitung solltest du erklären können, wie sich CSV und JSON unterscheiden, welche Arten von Datenquellen es gibt, warum JSON häufig für REST-APIs verwendet wird, wie ein einfaches API-Datenmodell aussieht, wie REST-Endpunkte sinnvoll aufgebaut werden, welche HTTP-Methoden und Statuscodes zu typischen API-Aktionen passen und wie erfolgreiche sowie fehlerhafte API-Antworten gestaltet werden können.