[ ] Vorlesungsbeispiel Hotelbuchung:
Tabellen
Gast(Gast-Nr, Name, Adresse, Email, Geburtsdatum)
Zimmer(Name, Kategorie, Preis pro Nacht)
Buchung(Buchung-Nr, Gast, Name des Gastes, Zimmer, Preis pro Nacht, Anzahl Personen, Reisezeitraum, Frühstück, Anzahl Nächte, Gesamtpreis)
Umsetzung mit Notion
Anwendungsfall:
Die Daten liegen in der oben gezeigten Form auf einem Server in einer Datenbank. Eine mobile App möchte auf diese Daten zugreifen und sendet einen HTTP-GET-Request an den Server.
Die App möchte dem Nutzer eine Übersicht mit allen Buchungen zeigen, daher soll der Server als Antwort auf den Request alle Datensätze aus der Tabelle “Buchung” im JSON-Format zurücksenden. Wie sieht der Response-Body im JSON-Format aus?
Vereinfachungen:
Variante 1:
Body:
[
{"Buchung-Nr": "B1",
"Gast": "G2",
"Name des Gastes": "Peter Walkowiak",
"Zimmer": "Z1",
"Preis pro Nacht": 160,
"Anzahl Personen": 1,
"Reisezeitraum":
{
start: "02.05.2023",
end: "08.05.2023"
},
"Frühstück": true,
"Anzahl Nächte": 6,
"Gesamtpreis": 960
},
{"Buchung-Nr": "B2",
"Gast": "G1",
"Name des Gastes": "Steffi Höse",
"Zimmer": "Z2",
"Preis pro Nacht": 250,
"Anzahl Personen": 2,
"Reisezeitraum":
{
start: "02.07.2023",
end: "10.07.2023"
},
"Frühstück": false,
"Anzahl Nächte": 8,
"Gesamtpreis": 4000
},
{"Buchung-Nr": "B3",
"Gast": "G3",
"Name des Gastes": "Linda Fuhrmann",
"Zimmer": "Z1",
"Preis pro Nacht": 160,
"Anzahl Personen": 1,
"Reisezeitraum":
{
start: "16.05.2023",
end: "20.05.2023"
},
"Frühstück": true,
"Anzahl Nächte": 4,
"Gesamtpreis": 640
},
]
Variante 2 mit verschachtelten Zimmer-Objekten:
Body:
[
{
"Buchung-Nr": "B1",
"Gast": "G2",
"Name des Gastes": "Peter Walkowiak",
"Zimmer": {
"Name": "Z1",
"Kategorie": "Standard",
"Preis pro Nacht": 160
},
"Preis pro Nacht": 160,
"Anzahl Personen": 1,
"Reisezeitraum": {
"start": "02.05.2023",
"end": "08.05.2023"
},
"Frühstück": true,
"Anzahl Nächte": 6,
"Gesamtpreis": 960
},
{
"Buchung-Nr": "B2",
"Gast": "G1",
"Name des Gastes": "Steffi Höse",
"Zimmer": {
"Name": "Z2",
"Kategorie": "Komfort",
"Preis pro Nacht": 250
},
"Preis pro Nacht": 250,
"Anzahl Personen": 2,
"Reisezeitraum": {
"start": "02.07.2023",
"end": "10.07.2023"
},
"Frühstück": false,
"Anzahl Nächte": 8,
"Gesamtpreis": 4000
},
{
"Buchung-Nr": "B3",
"Gast": "G3",
"Name des Gastes": "Linda Fuhrmann",
"Zimmer": {
"Name": "Z1",
"Kategorie": "Standard",
"Preis pro Nacht": 160
},
"Preis pro Nacht": 160,
"Anzahl Personen": 1,
"Reisezeitraum": {
"start": "16.05.2023",
"end": "20.05.2023"
},
"Frühstück": true,
"Anzahl Nächte": 4,
"Gesamtpreis": 640
}
]
Frage 1: Was wird für einen gültigen HTTP-GET-Request noch benötigt?
Antwort: die URL wird benötigt, also die Server-Adresse für eine bestimmte Anfrage
URL: https://serveradresse.de/Buchungen
Methode: HTTP GET
Parameter: von, bis
Beispiel für Anfrage: https://serveradresse.de/Buchungen?von=01.05.2023&bis=03.08.2023
Liste aller URLs und möglicher Paramater wird in einer API zusammengefasst
Frage 2: Welche Vorgehensweise wäre bei Variante 1 denkbar, um auf die vollständigen Daten eines Zimmers zuzugreifen, welches in einer bestimmten Buchung vorkommt?
URL: https://serveradresse.de/Zimmer
Methode: HTTP GET
Parameter: name
[ ] Zusatz: JSON Schema für die oben gezeigte Datenstruktur generieren (lassen)
[ ] JSON Beispiel Gastronovi, z.B. Abfrage aller Gerichte im JSON-Format
[ ] Arten von Datenbanken
Übersicht relational und/oder noSQL (II/II) | Schwarze Consulting GmbH
[ ] Technologie für komplexe Abfragen an Datenbanken (prinzipiell unabhängig von der Art der Datenbank): SQL (Structured Query Language)
[ ] In der bekannten Client-Server-Architektur kann SQL z.B. als Abfragesprache von der Backend-Software genutzt werden, um Daten aus der Datenbank abzufragen (und anschließend im JSON-Format an den Client zu senden)