Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
modul:m290_guko:learningunits:lu15:theorie:a_backend_server [2025/12/07 21:30] gkochmodul:m290_guko:learningunits:lu15:theorie:a_backend_server [2025/12/07 21:37] (aktuell) gkoch
Zeile 41: Zeile 41:
 Bis jetzt haben Sie im Modul M290 vor allem mit der Datenbank gearbeitet: Bis jetzt haben Sie im Modul M290 vor allem mit der Datenbank gearbeitet:
  
-  * Sie haben in **WebStorm** mit dem MySQL-Plugin gearbeitet.+  * Sie haben in **WebStorm** mit dem Datenbank-Plugin gearbeitet.
   * Sie haben **SQL-Befehle** (inkl. CRUD) direkt an die Datenbank ''MySQL'' geschickt.   * Sie haben **SQL-Befehle** (inkl. CRUD) direkt an die Datenbank ''MySQL'' geschickt.
   * Das war ideal, um SQL zu üben und zu verstehen, wie Tabellen, JOINs und Aggregatfunktionen funktionieren.   * Das war ideal, um SQL zu üben und zu verstehen, wie Tabellen, JOINs und Aggregatfunktionen funktionieren.
Zeile 56: Zeile 56:
 Das führt zu mehreren Problemen: Das führt zu mehreren Problemen:
  
-  * **Sicherheitsrisiko**   +  * **Sicherheitsrisiko**: Alledie die Verbindung kennenkönnten eigene SQL-Befehle ausführen – auch schädliche (z.B. Daten löschen). 
-    Jederder die Verbindung kenntkönnte eigene SQL-Befehle ausführen – auch schädliche (z.B. Daten löschen). +  * **Keine Kontrolle über die Logik**Es gäbe keine zentrale Stelle, die prüft, ob eine Aktion erlaubt ist (z.B. darf ein:e Lernende:wirklich Noten ändern?). 
-  * **Keine Kontrolle über die Logik**   +  * **Schwierige Wartung**Wenn sich die Struktur der Datenbank ändert, müssten alle Frontends (Webseiten, Apps, …) angepasst werden. 
-    Es gäbe keine zentrale Stelle, die prüft, ob eine Aktion erlaubt ist (z.B. darf ein Lernender wirklich Noten ändern?). +  * **Technische Abhängigkeit**Jedes Frontend müsste wissen, wie genau die Datenbank aufgebaut ist (Tabellennamen, Spaltennamen, Datentypen, …).
-  * **Schwierige Wartung**   +
-    Wenn sich die Struktur der Datenbank ändert, müssten alle Frontends (Webseiten, Apps, …) angepasst werden. +
-  * **Technische Abhängigkeit**   +
-    Jedes Frontend müsste wissen, wie genau die Datenbank aufgebaut ist (Tabellennamen, Spaltennamen, Datentypen, …).+
  
  
Zeile 105: Zeile 101:
     - ''Geburtsdatum darf nicht in der Zukunft liegen'',     - ''Geburtsdatum darf nicht in der Zukunft liegen'',
     - ''Eine Bewertung darf nur 1–5 Sterne haben''.     - ''Eine Bewertung darf nur 1–5 Sterne haben''.
-  * Der Browser darf keine eigenen SQL-Befehle erfinden, sondern ruft nur definierte **API-Endpunkte** auf  +  * Der Browser darf nicht über eigene SQL-Befehle mit der Datenbank kommunizieren, sondern ruft nur definierte **API-Endpunkte** auf  
     (z.B. ''POST /api/trips'' oder ''GET /api/books'').     (z.B. ''POST /api/trips'' oder ''GET /api/books'').
   * So ist klar geregelt, was das System darf und was nicht.   * So ist klar geregelt, was das System darf und was nicht.
Zeile 115: Zeile 111:
     - einer Webseite,     - einer Webseite,
     - einer Mobile-App,     - einer Mobile-App,
-    - Tools wie Postman (im Unterricht).+    - Tools wie Postman.
   * Die Datenbank-Struktur kann sich im Hintergrund ändern – die API kann stabil bleiben.   * Die Datenbank-Struktur kann sich im Hintergrund ändern – die API kann stabil bleiben.
  
Zeile 127: Zeile 123:
 In dieser Phase des Moduls gehen wir den nächsten Schritt: In dieser Phase des Moduls gehen wir den nächsten Schritt:
  
-  * Wir schreiben **keine SQL-Befehle mehr direkt in WebStorm an die Datenbank**,   +  * Wir schreiben **keine SQL-Befehle, wie ''SELECT''/''UPDATE''/''DELETE''/''CREATE'' mehr direkt in WebStorm an die Datenbank**,   
-  * sondern wir bauen einen **Backend-Server mit Node.js/Express**, der für uns mit der Datenbank spricht. +  * sondern wir bauen einen **Backend-Server mit Node.js/Express**, der für uns mit der Datenbank spricht. (Andere SQL-Befehle, wie das Erstellen von Tabellen und Datenbanken werden wir weiterhin direkt mit Webstorm/Datenbank-Plugin machen)
-  * Im Unterricht verwenden wir dazu zunächst den Browser und **Postman** als Client,   +  * Im Unterricht verwenden wir dazu zunächst den Browser und **Postman** als Client, später könnten auch echte Frontends (Web oder Mobile) diese API nutzen.
-    später könnten auch echte Frontends (Web oder Mobile) diese API nutzen.+
  • modul/m290_guko/learningunits/lu15/theorie/a_backend_server.1765139438.txt.gz
  • Zuletzt geändert: 2025/12/07 21:30
  • von gkoch