development-ib-fork/web/09/labor/db/09_aufgaben.md

1.9 KiB

Übungsblatt 09

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.

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.

Hinweise zu Aufgaben 1 und 2

  1. Erstellen Sie zunächst die benötigten Tabellen und Datensätze in Ihrer Datenbank. Eine Anleitung hierfür finden Sie hier: Datenbank vorbereiten
  2. Verwenden Sie folgende Schnittstellen-Definition für Ihre Implementierung: Swagger-API
  3. Tipp: Um die Elemente eines Slice in einem String zusammenzufügen, können Sie das Paket strings aus der Standard-Bibliothek verwenden: strings.Join

3. HTML-Übung: Formular

Aufgabenstellung: Schreiben Sie ein HTML-Formular, dass die Schnittstelle Swagger-API implementiert und Benutzereingaben an das in Aufgabe 1 + 2 implementierte Backend sendet.

4. 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

  1. Fügen Sie folgende Zeile am Anfang in Ihrer Handler func oder in der ServeHTTP-Funktion ihres http.Handler auf:

    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
    }
    
  2. Testen Sie Ihr(e) Programm(e) mit dieser Workshop-API.