4.5 KiB
Übungsblatt 09
Hinweise:
- Aufgabe 3 + 6: Keine Abgabe erforderlich
- Aufgabe 1 + 2 + 4 + 5: Abgabe erforderlich
Im Normalfall ist immer eine Abgabe erforderlich, es sei denn es gibt einen expliziten Hinweis!
1. Go-Übung: Datenbank INSERT
Aufgabenstellung: Erstellen Sie ein Webserver-Programm in Go, dass beim Aufruf eines Endpunkts /insert einen neuen Datensatz in der Datenbank speichert.
Hinweis
Siehe Hinweise zu Aufgaben 2 und 3 weiter unten.
2. Go-Übung: Datenbank UPDATE
Aufgabenstellung: Erweitern Sie das Programm aus Aufgabe 1 um einen neuen Endpunkt /update, der einen vorhandenen Datensatz in der Datenbank aktualisiert.
Hinweis
Siehe Hinweise zu Aufgaben 1 und 2 weiter unten.
Hinweise zu Aufgaben 1 und 2
- Erstellen Sie zunächst die benötigten Tabellen und Datensätze in Ihrer Datenbank. Eine Anleitung hierfür finden Sie hier: Datenbank vorbereiten
- Verwenden Sie folgende Schnittstellen-Definition für Ihre Implementierung: Swagger-API
- Tipp: Um die Elemente eines Slice in einem String zusammenzufügen, können Sie das Paket
stringsaus der Standard-Bibliothek verwenden: strings.Join
3. Dev-Container aktualisieren
Keine Abgabe erforderlich
Aufgabenstellung: Aktualisieren Sie Ihren Dev-Dontainer in VS Code als Vorbereitung auf die nächste Vorlesung und Labor.
Arbeitsschritte
-
Neueste Änderungen am
Dockerfileholengit pull -
Sicherstellen, dass die neuen Dateien lokal da sind
- Prüfe
.devcontainer/Dockerfileauf einen neuen Eintrag zu
# Node.js 24 (LTS) installieren - Prüfe
-
Dev-Container neu bauen
- In VS Code:
F1→ Dev Containers: Rebuild Container - oder über die Statusleiste → Rebuild Container
- In VS Code:
-
Testen der neuen NodeJS-Installation
node --versionEs sollte folgendes ausgegeben werden:
v24.11.1
4. Javascript-Übung: Grundlagen
Aufgabenstellung: Machen Sie sich zunächst mit den Grundlagen der Programmiersprache vertraut und schreiben Sie dann ein Programm, das über ein vorgegebenes Array von Zahlen iteriert und für jede Zahl ausgibt: - "Null" wenn die Zahl 0 ist - "Gerade Zahl" wenn die Zahl gerade ist - "Ungerade Zahl" wenn die Zahl ungerade ist
Ausgangsdaten:
const zahlen = [38, 0, 226, 384, 111, 500383];
Arbeitsschritte
- Arbeiten Sie mindestens die folgenden Kapitel auf Javascript Tutorial durch:
- JS Syntax
- JS Variables
- JS If Conditions
- JS Loops
- Verwenden Sie zur Lösung der Aufgabe eine for‑Schleife und den ternären Operator.
- Tipp:
zahlen.lengthliefert die aktuelle Länge des Arrays.
5. Javascript-Übung: Arrow-Function
Aufgabenstellung: Die Produktdaten eines kleinen Online-Supermarkts liegen als Array von Objekten vor, jedes Objekt enthält den Namen und den Preis eines Produkts. Schreiben Sie eine kleine Javascript-Funktion, die ein neues Array erstellt, in dem alle Preise um 10 % reduziert sind. Die Preise sollen dabei auf zwei Nachkommastellen gerundet werden.
Ausgangsdaten:
[
{ "produkt": "Joghurt", "preis": 2.49 },
{ "produkt": "Brot", "preis": 3.29 },
{ "produkt": "Käse", "preis": 8.99 },
{ "produkt": "Duschgel","preis": 2.79 }
]
Arbeitsschritte
- Verwenden Sie
map, um ein neues Array zu erzeugen. - Nutzen Sie eine Arrow-Function, um den Rabatt zu berechnen.
- Mit
.toFixed(2)können Sie die Preise auf zwei Nachkommastellen formatieren. - Geben Sie das neue Array in der Konsole aus.
6. Go-Übung: CORS
Keine Abgabe erforderlich
Aufgabenstellung: Erweitern Sie die beiden serverseitigen Go-Programme zur Workshop-Anmeldung aus den vorangegangen Übungsblättern 07 und 08 so, dass beim Ausführen der "Try Out"-Funktion in der SwaggerUI-Preview kein CORS-Fehler mehr auftaucht.
Arbeitsschritte
-
Fügen Sie folgende Zeile am Anfang in Ihrer Handler
funcoder in derServeHTTP-Funktion ihreshttp.Handlerauf:w.Header().Set("Access-Control-Allow-Origin", "*") w.Header().Set("Access-Control-Allow-Methods", "GET, POST, OPTIONS") w.Header().Set("Access-Control-Allow-Headers", "Content-Type") if r.Method == "OPTIONS" { w.WriteHeader(http.StatusNoContent) return } -
Testen Sie Ihr(e) Programm(e) mit dieser Workshop-API.