SP
spg-puw/wmc__aufgabe0301
WMC - Aufgabe 03/01 - SchulAPI
Aufgabe SchulAPI
Aufgabe by PUW.
Aufgabe
API
Schreiben Sie eine API, die die Daten aus Schulen.json verarbeitet und folgende Endpoints anbietet. Die Grundstruktur des Programms ist schon in der Datei index.js vordefiniert.
GET /a1: alle Schulen (Name, Adr, PLZ Ort) mit PLZ > 4000GET /a2: alle Schulen (Name, Adr, PLZ Ort) in WienGET /a3: alle Schulen (Name, Adr, PLZ Ort) in Wien, bei der die Adresse „gasse“ enthältGET /a4: alle Schulen (Name, Adr, PLZ Ort) in Wien und TirolGET /a5: Mailadresse aller Schulen in NÖGET /a6: alle Schulen (Name) mit Informatik-AusbildungGET /a7: Webseite aller Schulen mit Informatik-Ausbildung in WienGET /a8: Webseite aller Schulen mit Informatik-Ausbildung in Wien im HTML-Format mit bullet points, damit man das Code snippet auf einer Webseite einfügen könnteGET /a9: alle Ausbildungen der Spengergasse (Name, Dauer, conditions, note)GET /a10: alle Ausbildungen aller Wiener Schulen (Name, Dauer)GET /a11: alle Schulen (Name, Adr, PLZ Ort) im (Quadrat-)Um“kreis“ der Spengergasse mit +- 10km (10km in GPS-Distanz für lan/lot umwandeln)GET /a12: alle Ausbildungen (Name, Dauer) im Umkreis (wie vorhin) der Spengergasse +- 10kmGET /a13: alle Ausbildungen (Name, Dauer) OHNE die der Spengergasse im Umkreis (wie vorhin) der Spengergasse +- 10kmGET /a14: alle Ausbildungen (Name, Dauer) in Wien OHNE die der 2 größten Schulen (TGM, Spengergasse)
Frontend
Bearbeite die Datei public/index.html und ergänze folgende Funktion:
- Ergänze das Dropdown (Element mit id
endpoint) um die fehlenden Endpoints; benutze die vorhandene Vorlage - Reagiere auf Änderungen des Dropdowns (Element mit id
endpoint); rufe die Daten vom entsprechenden Endpoint auf und zeige diese an- Die alten Daten von vorigen Aufrufen werden immer gelöscht
- Sollte es einen Fehler geben, so wird einfach die Nachricht "(Daten konnten nicht geladen werden)" statt der Daten in das Element mit der id
mycontentgeschrieben
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 test