diff --git a/pflichtenheft.md b/pflichtenheft.md index fb49d03..a72a12d 100644 --- a/pflichtenheft.md +++ b/pflichtenheft.md @@ -118,7 +118,8 @@ Redundanzeigenschaften Bespr. Mit Hr. Prof. Gürth ### Schnittstellen zu eigenen Systemen -| RestAPI (Frontend / Backend)

Zwischen Datenbank und C#

Die Umsetzung einer RESTAPI umfasst die Planung von Endpunkten, Backend-Entwicklung, Datenbankanbindung | SnT-1 | +| RestAPI (Frontend / Backend)

+|1. Zielsetzung
Die geplante REST API soll in die Oqtane-CMS-Umgebung integriert werden, um eine dynamische Kommunikation zwischen dem CMS und einer Website zu ermöglichen. Sie dient dazu, Inhalte und Funktionen des CMS über die API für die Website verfügbar zu machen und ermöglicht dynamische CRUD-Operationen (Create, Read, Update, Delete) direkt aus dem CMS heraus.

2. Aufgabenbeschreibung
Die Aufgabe umfasst:
Integration in Oqtane: Erweiterung des Oqtane-CMS mit zusätzlichen Modulen und APIs.
Entwicklung der REST API: Bereitstellung von Endpunkten zur Interaktion zwischen CMS-Daten und Website.
Frontend-Integration: Anbindung der Website an die API, um CMS-Inhalte dynamisch darzustellen.
Sicherheitsimplementierung: Absicherung der API und des Datenflusses zwischen CMS und Website.

3. Sicherheitsanforderungen
Authentifizierung:
Verwendung von Oqtane's integriertem Benutzermanagement und JWT für Authentifizierung.
Sicherstellung, dass Benutzerrollen (z. B. Admin, Editor, User) berücksichtigt werden.
Autorisierung:
Zugriff auf Endpunkte wird basierend auf Benutzerrollen gesteuert.
Sensible Aktionen (z. B. Inhalte löschen) nur für berechtigte Benutzer möglich.
Eingabedatenvalidierung:
Eingaben im Frontend und Backend validieren.
API-Schutz:
Schutz gegen CSRF, XSS, und andere Angriffe.
Nutzung von HTTPS.

4. Nicht-funktionale Anforderungen
Performance: Antwortzeiten der API < 300ms für häufige Anfragen.
Kompatibilität: Vollständig kompatibel mit Oqtane-Modulen und Standard-Datenstrukturen.
Skalierbarkeit: Möglichkeit, neue Module und API-Endpunkte ohne größere Umbauten zu integrieren.
Internationalisierung: Unterstützung mehrsprachiger Inhalte.

5. Technische Umsetzung
5.1. Backend (Oqtane CMS)
Framework: ASP.NET Core, integriert in Oqtane.
Architektur:
Erweiterung des Oqtane-CMS durch Module.
Nutzung der Oqtane-Service-API und Datenzugriff über die vorhandene Architektur.
Erstellung benutzerdefinierter APIs mit .Controllers und Abbildung auf Oqtane-Tabellen.
5.2. Frontend
Technologien:
JavaScript-Frameworks wie React, Angular oder Vue.js.
Integration der REST API über Bibliotheken wie Axios oder die Fetch API.
Darstellung der Inhalte aus Oqtane in dynamischen Komponenten (z. B. Listen, Detailansichten).
API-Integration:
Frontend ruft Inhalte direkt von der REST API ab.
Dynamische Aktualisierung der Inhalte durch Benutzeraktionen (z. B. Formularübermittlung).
5.3. Sicherheit
Authentifizierung:
Authentifizierung über JWT-Token (Login-Endpunkte in Oqtane).
Speicherung von Token im sicheren Speicher (z. B. HttpOnly Cookies).
Eingabeverarbeitung:
Validierung von Daten im Frontend und Backend.
Schutz vor schädlichen Nutzereingaben (z. B. SQL-Injection).

6. Erfolgskriterien
Die Website kann nahtlos mit der Oqtane-REST API interagieren.
Die API erfüllt alle funktionalen Anforderungen und ist in die Oqtane-Datenstruktur integriert.
Sichere und performante Bereitstellung der API.
Modularer Aufbau, der zukünftige Erweiterungen unterstützt.

| SnT-1 | | --- | --- | ### Schnittstellen zu anderen Systemen