Dieses Projekt implementiert ein Backend einer RESTful-Webanwendung zur Verwaltung von Artikeln. Die Anwendung bietet Endpunkte für CRUD-Operationen (Erstellen, Abrufen, Aktualisieren und Löschen von Artikeln) und verfügt über Funktionsweisen zur Fehlerbehandlung.
- Artikelverwaltung: Hinzufügen, Abrufen, Aktualisieren und Löschen von Artikeln.
- Filterung nach Lagerort: Artikel können nach Lagerort abgefragt werden.
- Dynamische Portzuweisung: Der Server sucht automatisch einen verfügbaren Port, beginnend bei Port 8080. Falls dieser belegt ist, wird autoinkrementiert.
- Globale Fehlerbehandlung: Einheitliche Behandlung von Ausnahmen wie ungültigen Anfragen oder nicht gefundenen Ressourcen.
ApiError
: Modelliert Fehlerdetails für API-Antworten.Artikel
: Entität, die Artikel-Daten in der Datenbank speichert.ArtikelRepository
: Datenzugriffsschicht mit Standard- und benutzerdefinierten Methoden.ArtikelController
: REST-Controller für die Artikel-API-Endpunkte.GlobalExceptionHandler
: Behandelt Fehler global und gibt passende HTTP-Statuscodes und Fehlermeldungen zurück.PortUtil
: Findet dynamisch einen verfügbaren Port für den Server.RestFseApplication
: Haupteinstiegspunkt der Spring-Boot-Anwendung.
- Java 17 oder neuer.
- Gradle für den Build-Prozess.
- Spring Boot als Framework
- MariaDB für das persistieren der Daten.
- git
- Pakete aktualisieren:
sudo apt update
- MariaDB installieren:
sudo apt intall mariadb-server -y
- MariaDB starten und testen:
sudo systemctl start mariadb sudo systemctl enable mariadb
- Installation sichern (optional):
sudo mysql_secure_installation
- set a root password
- remove anonymous users
- disallow root login remotely
- remove test databases
- Installation verifizieren:
mysql --version
- MariaDB mit Brew installieren:
brew install mariadb
- MariaDB starten:
brew services start mariadb
- Installation sichern (optional):
mysql_secure_installation
- set a root password
- remove anonymous users
- disallow root login remotely
- remove test databases
- Installation verifizieren:
mysql --version
- Besuche die offizielle MariaDB-Webseite: https://mariadb.org/download/.
- Wähle dein Betriebssystem (Windows) und die gewünschte Version aus.
- Lade die Installationsdatei (MSI-Paket) herunter.
- Starte die Installation mit Hilfe der Installationsdatei.
- Folge den Anweisungen der Installation.
- Lege ein Passwort für den root-Benutzer fest und vergesse es nicht.
- Öffne HeidiSQL.
- Gebe der Session einen Namen.
- Gebe bei Hostname/IP 'localhost' und bei Port '3306' ein.
- Erstelle eine neue Datenbank.
Wenn Sie Benutzername, Passwort und DB-Name gesetzt haben, müssen sie diese in die application.properties
eintragen.
-
Repository klonen:
git clone https://github.com/realPJL/rest-fse.git cd rest-fse
-
DB aufsetzen:
mysql -u root -p
CREATE DATABASE 'your_database_name';
CREATE USER 'your_user'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON 'your_database_name'.* TO 'your_user'@'%';
FLUSH PRIVILEGES;
your_user
Dies ist der Benutzername, der erstellt und für die Verbindung zur Datenbank verwendet wird.
your_password
Dies ist das mit dem Benutzernamen verbundene Passwort.
your_database_name
Dies ist der Name der Datenbank, die Ihre Anwendung verwenden wird.
Ersetzen Sie ihn durch einen beschreibenden Namen, z. B. den Namen des Projekts.
%
Dies ist ein Platzhalter für einen beliebigen Host. Wenn Benutzer den Zugriff auf einen bestimmten Host beschränken wollen (z. B. nur localhost oder einen bestimmten Server), sollten sie % ersetzen:
- 'localhost' für Verbindungen nur vom selben Server.
- '192.168.1.100' für Verbindungen von einer bestimmten IP-Adresse.
Wenn Sie Benutzername, Passwort und DB-Name gesetzt haben, müssen sie diese in die application.properties
eintragen.
- Abhängigkeiten bauen:
./gradlew clean build
- Anwendung starten:
./gradlew bootRun
- API testen: Die Anwendung läuft auf einem dynamisch gewählten Port. Der Port wird nach dem Start in der Konsole ausgegeben. Standardmäßig läuft die Anwendung auf Port 8080, falls dieser Belegt ist wird automatisch auf den nächst höheren Port gewechselt.
- Spring Boot Starter Web: Bereitstellung der REST-Funktionalität.
- Spring Boot Starter Data JPA: Datenbankzugriff.
- MariaDB: Eingebettete Datenbank für Tests.
- Jakarta Persistence API (JPA): Für die Objekt-Datenbank-Mapping.
- Java Time API: Verarbeitung von Datums- und Zeitstempeln.
- GET
/api/artikel
: Alle Artikel abrufen. - GET
/api/artikel/{id}
: Artikel mit einer bestimmten ID abrufen. - GET
/api/artikel/lagerort
: Artikel nach Lagerort filtern (Query-Parameter:lagerort
). - POST
/api/artikel
: Neuen Artikel erstellen. - PUT
/api/artikel/{id}
: Artikel aktualisieren. - DELETE
/api/artikel/{id}
: Artikel löschen.
Die Anwendung behandelt folgende Fehler:
- Ungültige Anfragen: HTTP 400 (Bad Request)
- Nicht gefundene Ressourcen: HTTP 404 (Not Found)
- Serverfehler: HTTP 500 (Internal Server Error)