MVC-Architektur
Die MVC-Architektur (Model-View-Controller) ist ein weit verbreitetes Muster, das hilft, den Code einer Anwendung klar zu strukturieren und die Verantwortlichkeiten zu trennen. In einer API ohne Frontend-Anwendung wird oft nur der Model- und Controller-Teil genutzt, da Views typischerweise für das Rendern von HTML in Webanwendungen verwendet werden. Für unsere REST-API mit Express bedeutet MVC, dass wir Datenlogik (Models), Routen-Logik (Controller) und Routen-Endpunkte trennen.
Model
- Die Models repräsentieren die Datenstruktur der Anwendung und enthalten die Logik für den Zugriff auf und die Manipulation von Daten.
- In unserem Fall könnten die Models für unsere Produktdaten verantwortlich sein und z. B. in einer Datenbank (später integrierbar) gespeichert werden.
View
- Views werden in REST-APIs oft weggelassen oder stellen stattdessen JSON-Daten dar, die vom Controller an den Client zurückgesendet werden.
Controller
- Die Controller-Schicht übernimmt die Anwendungslogik und verarbeitet Anfragen. Sie ruft die erforderlichen Daten aus den Models ab und sendet die Antwort zurück.
- Für jede Ressource, z. B. Products, gibt es einen eigenen Controller, der CRUD-Operationen verwaltet.
2. MVC-Ordnerstruktur
Um unsere API in MVC zu organisieren, erstellen wir eine Verzeichnisstruktur, die die drei Hauptteile trennt:
mini-api/
│
├── controllers/
│ └── product-controller.js
│
├── models/
│ └── product-model.js
│
├── routes/
│ └── product-routes.js
│
├── index.js
└── package.json
Aufgabe: API in MVC umstrukturieren
- Ordnerstruktur erstellen: Erstelle die Verzeichnisstruktur (controllers, models, routes).
- Model-Logik hinzufügen: Verschiebe die Produktdaten und -methoden in
productModel.js
. - Controller erstellen: Implementiere die CRUD-Logik im Controller
productController.js
. - Routes definieren: Verknüpfe die Routen in
productRoutes.js
mit den Controllern. - Server einrichten: Importiere die Routes in
index.js
und starte den Server.
Sobald die Umstrukturierung abgeschlossen ist, kannst du die API-Endpunkte testen, um sicherzustellen, dass die Funktionalität unverändert bleibt. Die MVC-Architektur verbessert die Lesbarkeit und Wartbarkeit der API erheblich, da alle Komponenten klar getrennt sind.