SP
spg-puw/wmc__aufgabe0302
WMC - Aufgabe 03/02 - MiniFrontend mit API
Aufgabe MiniFrontend mit API
Aufgabe by PUW.
Aufgabe
API
Implementiere folgende API mit express. Die Daten der API müssen nicht gespeichert werden (keine Persistierung) - nach jedem Neustart des Programms sind nur die Anfangsdaten vorhanden.
Die Grundstruktur des Programms ist schon in der Datei index.js vordefiniert.
GET /: lädt die Dateipreview.htmlGET /products- gibt alle Produkte als JSON zurück (array)
GET /products/<someid>- gibt ein Produkt als JSON zurück, wenn das Produkt gefunden wird
- wird das Produkt nicht gefunden, so wird der Statuscode 404 mit der Nachricht 'not found' zurückgegeben
POST /products- erwartet ein POST-Request mit den Parametern:
name,price - Fehlende oder leere Parameter sowie ein negativer Preis führen zu einem Fehler mit Statuscode 400 und der Nachricht 'parameter error'
- passen alle Parameter, so wird das Produkt mit einer neuen ID in die Liste eingefügt und der Datensatz für das neue Produkt als JSON zurückgeliefert
- erwartet ein POST-Request mit den Parametern:
DELETE /products/<someid>- wenn das Produkt gefunden wird, so wird es aus der Liste gelöscht und der Datensatz des gelöschten Produktes als JSON zurückgegeben
- wird das Produkt nicht gefunden, so wird der Statuscode 404 mit der Nachricht 'not found' zurückgegeben
MiniFrontend
Bearbeite die Datei preview.html und ergänze folgende Funktionen.
- Füge ein Formular hinzu, um neue Produkte anzulegen
- Name, Preis, Absendebutton
- Formularziel ist die Route
POST /products - Nach dem Absenden wird wird man auf die Produkte-Seite geleitet und es wird das neue Produkt als JSON angezeigt
- ergänze die Funktion loadData() ...
- es werden die Produkte dynamisch von
GET /productsgeladen - wenn Daten geladen wurden und Datensätze vorhanden sind, so wird die aktuelle Tabelle gelöscht und die neuen Datensätze hinzugefügt
- siehe Tabellenstruktur im HTML-Code
- der Preis wird in der Tabelle mit 2 Nachkommastellen und dem Eurozeichen angegeben (z.B. 10 wird zu "10.00 €")
- sollte das Laden fehlschlagen, so wird über alert() die Fehlermeldung 'Keine Daten empfangen' ausgegeben
- es werden die Produkte dynamisch von
Setup
Abhängigkeiten installieren:
npm installDas Programm selber kann mit folgendem Befehl gestartet werden:
# normal starten
npm run start
# mit nodemon starten
npm run devZum Testen werden jest und supertest (API) sowie cypress (e2e) verwendet.
# für API-Test
npm run test:api
# für Frontend-Test (e2e mit cypress)
npm run test:e2e
npm run cypress:open # cypress öffnen (API muss gestartet sein)
# alle Tests durchlaufen
npm run testOn this page
Contributors
Created July 25, 2023
Updated October 16, 2023