LU03.A01 - Bibliothek
Erstelle eine Webapplikation mit Services zur Verwaltung von Büchern in einer Bibliothek.
Aufbau der Applikation
In der Applikation sind die Klassen und Methoden für das Lesen und Schreiben der Bücher bereits umgesetzt.
Datei "app.py"
Die zentrale Datei zur Definition der Ressourcen und Pfade.
Ordner "model"
Hier sind die Datenklassen für Library
und Book
umgesetzt.
Ordner "files"
In diesem Ordner sind in der Datei books.json
einige Bücher als JSON-Struktur gespeichert.
Die Datei books.bak.json
dient als Backup.
Du kannst bei Bedarf den Inhalt dieser Datei kopieren und in books.json
einfügen.
Ordner "resource"
In diesem Ordner erstellst du deine Klassen mit den Ressourcen und Services.
Vorbereitung
- Akzeptiere das Assignment im GitHub Classroom.
- Klone das Repository in deine IDE.
- (PyCharm) Erstelle eine Runtime Configuration für den Flask Server.
Aufträge
Deine Aufgabe ist es, die Ressourcen, Pfade und Services zu definieren und umzusetzen. Für jeden Service ist das Vorgehen gleich:
- Lege die URI für die Ressource fest.
- Lege fest, mit welcher HTTP-Methode der Service aufgerufen wird.
- Lege den Inhalt der Response des Services fest:
- Welche Daten und deren Format.
- Welche HTTP-Statuscodes.
- Falls noch nicht vorhanden, erstelle die Klasse für diese Ressource im Ordner
resource
. - Realisiere die Methode für den Service.
- Teste den Service mit Hilfe von Postman und/oder dem Webbrowser.
Bücherliste
Dieser Service liefert ein JSON-Array mit allen Buch-Objekten.
Die Methode liest die Bücherliste aus der Library-Klasse. Die Bücherliste wird als Response an den Aufrufer gesendet.
Buch lesen
Dieser Service liefert eine einzelnes Buch als JSON-Objekt.
Die Methode holt anhand der UUID ein Buch aus der Library-Klasse. Falls es gefunden wurde, wird das Buch in der Response an den Aufrufer gesendet.
Buch einfügen
Dieser Service fügt die Daten eines neuen Buchs in die Bücherliste der Library-Klasse ein. In der Response wird die UUID des neuen Buchs mitgegeben.
Die Methode parst die Formular-Parameter aus dem Request ein. Diese Parameter müssen vorgängig definiert werden. Es wird ein neues Buch-Objekt erstellt und eine neue UUID erzeugt. Die Formulardaten werden in das Buch-Objekt gespeichert. Zuletzt wird das Buch-Objekt am Ende der Bücherliste eingefügt und gespeichert.
Buch ändern
Dieser Service ändert die Daten eines bestehenden Buchs in der Bücherliste der Library-Klasse ein.
Die Methode holt anhand der UUID ein Buch aus der Library-Klasse. Falls es gefunden wurde, werden die Formular-Parameter aus dem Request geparst und in das Objekt gespeichert. Zuletzt wird die Bücherliste gespeichert.