development-ib-fork/web/06/labor/06_aufgaben.md

3.0 KiB
Raw Blame History

Übungsblatt 06

1. SWAGGER-Übung: Workshop-API

Aufgabenstellung: Erstellen Sie eine OpenAPI-Spezifikation für die Workshop-Anmeldung aus Übungsblatt 04 (HTML-Formular).

Arbeitsschritte

  1. Setzen die OpenAPI-Version auf 3.0.0.

  2. Setzen Sie Meta-Daten wie Titel und API-Version im Info-Objekt.

  3. Setzen Sie https://web4-637691723779.europe-west1.run.app als URL im Servers-Objekt.

  4. Setzen Sie einen Pfad /registrierung für die HTTP-Methode POST. Definieren Sie eine Beschreibung, den Request-Body sowie mögliche Antworten des Servers.

    1. Request-Body für die Übergabe von Formulardaten
    2. Request-Body für die Übergabe von JSON-Daten

    Tipp: Verwenden Sie das Components-Objekt.

  5. Verwenden Sie Enums (https://swagger.io/docs/specification/v3_0/data-models/enums/) für die Spezifikation der Checkboxen und der Radiobuttons (s. Hinweis unten).

    • Beispiel für enum in JSON-OpenAPI:
    	"farbe": {
    		"type": "string",
    		"enum": ["rot","gruen","blau"],
    		"example": "gruen"
    	},
    
  6. Testen Sie Ihre API-Spezifikation mit Swagger.

Hinweis

Der serverseitige API-Endpunkt hat sich geändert (neue URL: https://web4-637691723779.europe-west1.run.app) und wurde nun folgendermaßen implementiert:

  1. Wenn die Checkbox aktiviert wurde, wird für agb, newsletter und equipment nur noch der Wert (value-Attribut) ja akzeptiert.
  2. Für format werden die Werte (value-Attribut) online und praesenz akzeptiert, je nach dem, welcher Radiobutton aktiviert wurde.
  3. Die Eingabefelder zu Vorname, Nachname, AGB und Format sind nun Pflichtfelder.

2. Go-Übung: Kommandozeilenprogramm

Aufgabenstellung: Entwickeln Sie ein Kommandozeilenprogramm in Go, mit dem Nutzer:innen ihre persönliche Büchersammlung verwalten können.

Arbeitsschritte

Implementieren Sie ein Programm mit folgenden Funktionen:

  1. Buch hinzufügen

    go run main.go book.go add "Titel" "Autor"
    

    → Fügt ein neues Buch zur Sammlung hinzu.

  2. Bücher auflisten

    go run main.go book.go list
    

    → Zeigt alle Bücher mit ID, Titel, Autor und Lesestatus.

  3. Buch als gelesen markieren

    go run main.go book.go read <ID>
    

    → Markiert das Buch mit der angegebenen ID als gelesen.

  4. Persistenz

    • Die Bücher sollen in einer Datei books.json gespeichert und beim Programmstart wieder geladen werden.
    • Verwenden Sie dafür das encoding/json-Paket und os.ReadFile / os.WriteFile.

Hinweise

  • Verwenden Sie struct für die Buch- und Bibliotheksdaten.
  • Arbeiten Sie mit slice zur Verwaltung der Bücherliste.
  • Nutzen Sie Methoden zur Kapselung von Logik (z.B. Add, MarkRead, Save).
  • Behandeln Sie Fehler sinnvoll und benutzerfreundlich.
  • Strukturieren Sie Ihr Projekt in mindestens zwei Dateien (main.go, book.go). Hierzu müssen Sie Module verwenden. Eine kurze Anleitung dazu finden Sie hier: Abhängigkeiten mit go.mod