forked from WEB-IMB-WS2526/lab-development-imb
81 lines
2.6 KiB
Markdown
81 lines
2.6 KiB
Markdown
# Übungsblatt 07
|
||
|
||
## 1. Go-Übung: Grundlagen
|
||
|
||
_Keine Abgabe erforderlich_
|
||
|
||
**Aufgabenstellung**: Machen Sie sich mit den Grundlagen der Programmiersprache vertraut.
|
||
|
||
#### Arbeitsschritte
|
||
|
||
1. Besuchen Sie die Webseite [Go by Example](https://gobyexample.com): **Go by Example** ist eine Einführung in Go anhand kommentierter Beispielprogramme.
|
||
2. Arbeiten Sie die Liste der Beispiele nacheinander durch. Folgende Themen werden (mindestens) empfohlen:
|
||
- Hello World
|
||
- Values
|
||
- Variables
|
||
- For
|
||
- If/Else
|
||
- Switch
|
||
- Arrays
|
||
- Slices
|
||
- Maps
|
||
- Functions
|
||
- Multiple Return Values
|
||
- Closures
|
||
- Range over Built-in Types
|
||
- Pointers
|
||
- Structs
|
||
- Methods
|
||
- Interfaces
|
||
- Enums
|
||
- Errors
|
||
|
||
## 2. Go-Übung: Kommandozeilenprogramm
|
||
|
||
**Aufgabenstellung**: Entwickeln Sie ein Kommandozeilenprogramm in Go, mit dem Nutzer:innen ihre persönliche Büchersammlung verwalten können.
|
||
|
||
_Tipp: Schauen Sie sich vorher das Demo-Programm "taskmanager" an._
|
||
|
||
#### Arbeitsschritte
|
||
|
||
Implementieren Sie ein Programm mit folgenden Funktionen:
|
||
|
||
1. **Buch hinzufügen**
|
||
```bash
|
||
go run main.go add "Titel" "Autor"
|
||
```
|
||
→ Fügt ein neues Buch zur Sammlung hinzu.
|
||
|
||
2. **Bücher auflisten**
|
||
```bash
|
||
go run main.go list
|
||
```
|
||
→ Zeigt alle Bücher mit ID, Titel, Autor und Lesestatus.
|
||
|
||
3. **Buch als gelesen markieren**
|
||
```bash
|
||
go run main.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`).
|
||
|
||
## 3. Go-Übung: Formulardaten empfangen
|
||
|
||
**Aufgabenstellung**: Erstellen Sie ein Webserver-Programm in Go, das den HTTP-Endpunkt `/registrierung` bereitstellt.
|
||
|
||
- Der Endpunkt nimmt die Formulardaten der Workshop-Anmeldung aus Übungsblatt 04 entgegen und gibt sie als Response zurück.
|
||
- Nutzen Sie dazu gerne die zuvor von Ihnen in Übungsblatt 06 definierte SWAGGER-Schnittstelle.
|
||
- Es sollen nur `POST`-Request erlaubt sein. Falls eine andere Methode verwendet wurde, soll der Status-Code 405 (Method not allowed) zurückgegeben werden.
|
||
- Testen Sie Ihren Endpunkt mit Ihrem HTML-Formular.
|