Changes for page Basisprojekt
Last modified by mgrawunder on 2025/09/09 08:42
From 22.1 to 21.1
From 38.3 to 38.2
From version 38.2
edited by mgrawunder
on 2025/09/03 10:18
on 2025/09/03 10:18
Change comment:
There is no comment for this version
To version 22.1
edited by Marco Grawunder
on 2025/08/15 10:25
on 2025/08/15 10:25
Change comment:
Uploaded new attachment "1755246318433-327.png", version {1}
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Attachments (0 modified, 0 added, 15 removed)
- 1755248508652-523.png
- 1755248752596-839.png
- 1755249096987-249.png
- 1755249136156-419.png
- 1755249228556-469.png
- 1755249285866-367.png
- 1755250026156-269.png
- 1755250050031-304.png
- 1755250061990-172.png
- 1755250157536-746.png
- 1756886220468-891.png
- 1756887005209-855.png
- 1756887037619-847.png
- 1756887436525-790.png
- 1756887488020-376.png
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. mgrawunder1 +XWiki.MarcoGrawunder - Content
-
... ... @@ -1,15 +1,12 @@ 1 1 [[image:Main.Organisatorisches.WebHome@softwareprojekt_logo_transparent.png||alt="SoftwareprojektLogo.png" data-xwiki-image-style-alignment="end" height="136" width="309"]] 2 2 3 -Hier folgen Erklärungen des neuen Basisprojekts. Es wird um die folgenden Themen gehen:3 +Hier folgen Erklärungen des neuen Basisprojekts. 4 4 5 -{{toc/}} 6 6 7 - 8 8 = Basisprojekt mit IntelliJ einrichten = 9 9 10 10 [[image:1755245956916-184.png]] 11 11 12 -== Clone == 13 13 14 14 [[image:1755245971657-468.png]] 15 15 ... ... @@ -20,7 +20,6 @@ 20 20 21 21 [[image:1755245996886-733.png]] 22 22 23 -== Initialer Build (Generierung) == 24 24 25 25 [[image:1755246008466-477.png]] 26 26 ... ... @@ -28,169 +28,17 @@ 28 28 [[image:1755246018789-616.png]] 29 29 30 30 31 -== Lombok Plugin == 32 - 33 -**Lombok Plugin installiert? Wenn nein jetzt machen** 34 - 35 -[[image:1755248508652-523.png]] 36 - 37 -**Hinweis: Wenn man schon hier ist, kann man auch das Spring-(Boot)-Plugin **installieren 38 - 39 -[[image:1756886220468-891.png]] 40 - 41 -== Server laufen lassen == 42 - 43 43 [[image:1755246035428-328.png]] 44 44 45 45 46 - ... und ggf.Lombokaktivieren(Man wirdnach dem StartderAnwendunggefragt)30 +Lombok Plugin installiert? Wenn nein jetzt machen 47 47 48 - [[image:1755246072443-191.png]]32 +... und aktivier 49 49 50 50 51 -[[image:1755246118807-452.png]] 52 52 36 +Hinweise: 53 53 54 - ==Loggingumstellen==38 +- Wenn man nicht IntelliJ in der Pro-Version verwendet, muss kann man ein Spring-Profil über eine Umgebungsvariable in der Konfiguration des Servers setzen: 55 55 56 -[[image:1755246135109-325.png]] 57 - 58 - 59 -[[image:1755246147827-679.png]] 60 - 61 - 62 -[[image:1755246162330-595.png]] 63 - 64 -== Development Profil aktivieren == 65 - 66 -damit dann user1 - user9 angelegt werden und man nicht jedesmal neu registrieren muss 67 - 68 -[[image:1755246173415-934.png]] 69 - 70 - 71 -**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: ** 72 - 73 -**SPRING_PROFILES_ACTIVE=dev** 74 - 75 -[[image:1755248752596-839.png]] 76 - 77 - 78 -== Client starten == 79 - 80 -[[image:1755246257400-525.png]] 81 - 82 - 83 -[[image:1755246212916-883.png]] 84 - 85 - 86 -[[image:1755246223246-834.png]] 87 - 88 - 89 -=== Mehrere Instanzen des Clients ermöglichen === 90 - 91 -[[image:1755246233218-893.png]] 92 - 93 - 94 -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. 95 - 96 -[[image:1755246292057-581.png]] 97 - 98 - 99 -= Kurzer Blick ins Basisprojekt = 100 - 101 -[[image:1755249096987-249.png]] 102 - 103 - 104 -[[image:1755249136156-419.png]] 105 - 106 - 107 -== Screenshots == 108 - 109 -[[image:1755249228556-469.png]] 110 - 111 - 112 -= Kommunikation Client ~-~-> Server = 113 - 114 -[[image:1755249285866-367.png]] 115 - 116 -Der Server verwendet das REST-Protokoll und als Austauschformat JSON 117 - 118 -= OpenAPI = 119 - 120 -(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) 121 - 122 -[[image:1755250026156-269.png]] 123 - 124 -[[image:1755250050031-304.png]] 125 - 126 -* **Paths**: Endpunkte der API (z.B. /users, /lobbies). 127 -* **Operations**: Spezifikation von Methoden wie GET, POST. 128 -* **Definitions**: Detaillierte Beschreibung von Eingabe- und Ausgabestrukturen. 129 -* **Security**: Authentifizierungsmechanismen. 130 - 131 -[[image:1755250061990-172.png]] 132 - 133 -Kann JSON oder YAML (Yet Another Markup Language) verwenden YAML ist wie JSON nur mit weniger Klammern 134 - 135 -[[image:1755250157536-746.png]] 136 - 137 -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>>https://gitlab.swl.informatik.uni-oldenburg.de/SPB/SWPBasisprojekt2/-/blob/master/openapi.yaml?ref_type=heads]] 138 - 139 -Dort wird die Datei auch grafisch dargestellt. 140 - 141 - 142 -= Maven und OpenAPI = 143 - 144 -Die OpenAPI Datei kann verwendet werden, um sich die [[REST-Schnittstellen>>doc:||anchor="HErweiterungderREST-Schnittstelle"]] generieren zu lassen. Diese Erzeugung erfolgt mit dem OpenAPI Generator [[https:~~/~~/github.com/OpenAPITools/openapi-generator>>https://github.com/OpenAPITools/openapi-generator]] 145 - 146 -Man kann dabei jetzt einen Kommandozeilenaufruf verwenden oder man setzt auf das im Basisprojekt vorhandene MVN () 147 - 148 -Dafür ist in den Maven-Dateien bereits das OpenAPI Generator Plugin integriert. Da im Client und im Server unterschiedliche Arten verwendet werden, erfolgt die Konfiguration im Client und im Server unterschiedlich: 149 - 150 -== Client == 151 - 152 -Im Client werden die Apache Http Bibliothek verwendet. 153 - 154 - 155 -[[image:1756887005209-855.png]] 156 - 157 -== Server == 158 - 159 -Im Server wird Spring (Boot) verwendet 160 - 161 -[[image:1756887037619-847.png]] 162 - 163 -TODO: Weitere Informationen zu 164 - 165 -- Lombok 166 - 167 -- Dependency Injection 168 - 169 -- Spring (Boot), siehe auch [[https:~~/~~/www.marcobehler.com/guides/spring-framework>>https://www.marcobehler.com/guides/spring-framework]] 170 - 171 - 172 - 173 -= Erweiterung der REST-Schnittstelle = 174 - 175 -In diesem Beispiel wird einmal gezeigt, wie die REST-Schnittstelle des Basisprojektes einfach erweitert werden kann. 176 - 177 -In diesem Beispiel soll die aktuelle Schnittstelle um die Möglichkeit erweitert werden, alle Lobbies vom Server zu bekommen. 178 - 179 -== Schritt 1: Erweitere das OpenAPI-Dokument == 180 - 181 -Um diese neue Funktion sowohl im Client als auch im Server verwenden zu können, ist es notwendig, diese neue Funktion im OpenAPI-Dokument zu definieren. 182 - 183 -Die Funktion soll sehr einfach sein und keine Parameter verlangen. Dafür bietet sich die GET-Funktion an. 184 - 185 -Im folgenden Bild sind alle Anpassungen zu sehen: 186 - 187 -[[image:1756887436525-790.png||height="355" width="974"]] 188 - 189 - 190 -Nach dem Speichern, sollte das OpenAPI-Dokument wie folgt aussehen 191 - 192 -[[image:1756887488020-376.png||height="642" width="904"]] 193 - 194 - 195 - 196 - 40 +SPRING_PROFILES_ACTIVE=dev
- 1755248508652-523.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.MarcoGrawunder - Size
-
... ... @@ -1,1 +1,0 @@ 1 -89.8 KB - Content
- 1755248752596-839.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.MarcoGrawunder - Size
-
... ... @@ -1,1 +1,0 @@ 1 -23.4 KB - Content
- 1755249096987-249.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.MarcoGrawunder - Size
-
... ... @@ -1,1 +1,0 @@ 1 -470.5 KB - Content
- 1755249136156-419.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.MarcoGrawunder - Size
-
... ... @@ -1,1 +1,0 @@ 1 -214.2 KB - Content
- 1755249228556-469.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.MarcoGrawunder - Size
-
... ... @@ -1,1 +1,0 @@ 1 -118.7 KB - Content
- 1755249285866-367.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.MarcoGrawunder - Size
-
... ... @@ -1,1 +1,0 @@ 1 -65.5 KB - Content
- 1755250026156-269.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.MarcoGrawunder - Size
-
... ... @@ -1,1 +1,0 @@ 1 -181.0 KB - Content
- 1755250050031-304.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.MarcoGrawunder - Size
-
... ... @@ -1,1 +1,0 @@ 1 -140.4 KB - Content
- 1755250061990-172.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.MarcoGrawunder - Size
-
... ... @@ -1,1 +1,0 @@ 1 -64.5 KB - Content
- 1755250157536-746.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.MarcoGrawunder - Size
-
... ... @@ -1,1 +1,0 @@ 1 -125.7 KB - Content
- 1756886220468-891.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.mgrawunder - Size
-
... ... @@ -1,1 +1,0 @@ 1 -161.0 KB - Content
- 1756887005209-855.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.mgrawunder - Size
-
... ... @@ -1,1 +1,0 @@ 1 -56.9 KB - Content
- 1756887037619-847.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.mgrawunder - Size
-
... ... @@ -1,1 +1,0 @@ 1 -52.5 KB - Content
- 1756887436525-790.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.mgrawunder - Size
-
... ... @@ -1,1 +1,0 @@ 1 -62.8 KB - Content
- 1756887488020-376.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.mgrawunder - Size
-
... ... @@ -1,1 +1,0 @@ 1 -187.5 KB - Content