Basisprojekt
Hier folgen Erklärungen des neuen Basisprojekts. Es wird um die folgenden Themen gehen:
- Basisprojekt mit IntelliJ einrichten
- Kurzer Blick ins Basisprojekt
- Kommunikation Client --> Server
- OpenAPI
- Maven und OpenAPI
- Erweiterung der REST-Schnittstelle
Basisprojekt mit IntelliJ einrichten
Clone
Auf anderen Branch wechseln (hier development)
Initialer Build (Generierung)
Lombok Plugin
Lombok Plugin installiert? Wenn nein jetzt machen
Hinweis: Wenn man schon hier ist, kann man auch das Spring-(Boot)-Plugin installieren
Server laufen lassen
... und ggf. Lombok aktivieren (Man wird nach dem Start der Anwendung gefragt)
Logging umstellen
Development Profil aktivieren
damit dann user1 - user9 angelegt werden und man nicht jedesmal neu registrieren muss
Wenn man IntelliJ nicht in der Pro-Version verwendet bzw. das Spring Boot Plugin nicht installiert hat, muss kann man ein Spring-Profil über eine Umgebungsvariable in der Konfiguration des Servers setzen:
SPRING_PROFILES_ACTIVE=dev
Client starten
Mehrere Instanzen des Clients ermöglichen
Wenn folgendes kommt, ist entweder das "dev" Profil nicht aktiviert, der Nutzer wurde nicht angelegt. Wenn der Server nicht läuft, gibt es eine andere Fehlermeldung.
Kurzer Blick ins Basisprojekt
Screenshots
Kommunikation Client --> Server
Der Server verwendet das REST-Protokoll und als Austauschformat JSON
OpenAPI
(Hinweis: Ich bin nicht sicher, ob IntelliJ diese Darstellung auch hat, wenn man nicht die Ultimate Version verwendet. Ggf. muss man das OpenAPI-Plugin installieren)
- Paths: Endpunkte der API (z.B. /users, /lobbies).
- Operations: Spezifikation von Methoden wie GET, POST.
- Definitions: Detaillierte Beschreibung von Eingabe- und Ausgabestrukturen.
- Security: Authentifizierungsmechanismen.
Kann JSON oder YAML (Yet Another Markup Language) verwenden YAML ist wie JSON nur mit weniger Klammern
Die aktuelle Version des OpenAPI Dokumentes findet sich im Basisprojekt 2 https://gitlab.swl.informatik.uni-oldenburg.de/SPB/SWPBasisprojekt2/-/blob/master/openapi.yaml?ref_type=heads
Dort wird die Datei auch grafisch dargestellt.
Maven und OpenAPI
Die OpenAPI Datei kann verwendet werden, um sich die REST-Schnittstellen generieren zu lassen.
Erweiterung der REST-Schnittstelle