API-Dokumentation: Unterschied zwischen den Versionen
Weitere Optionen
Keine Bearbeitungszusammenfassung |
|||
| Zeile 47: | Zeile 47: | ||
| <code>/api/shop/buy?id={id}&item={item}</code> | | <code>/api/shop/buy?id={id}&item={item}</code> | ||
| Kauft dem Spieler das Item, welches angegeben ist. | | Kauft dem Spieler das Item, welches angegeben ist. | ||
|<nowiki> id | String | Spiel-UUID item | String | |<nowiki> id | String | Spiel-UUID | item | String | Shop-Item-ID</nowiki> | ||
|- | |- | ||
| style="background-color: #007bff; color: white; font-weight: bold; text-align: center;" | POST | | style="background-color: #007bff; color: white; font-weight: bold; text-align: center;" | POST | ||
| <code>/api/tech/unlock?id={id}&tech={tech}&cost={cost}</code> | | <code>/api/tech/unlock?id={id}&tech={tech}&cost={cost}</code> | ||
| Schaltet Technologie aus dem Tech-Tree frei. | | Schaltet Technologie aus dem Tech-Tree frei. | ||
|<nowiki> id | String | Spiel-UUID tech | String Tech-Item-ID cost | Integer | FP Kosten</nowiki> | |<nowiki> id | String | Spiel-UUID | tech | String Tech-Item-ID | cost | Integer | FP Kosten</nowiki> | ||
|- | |- | ||
| style="background-color: #007bff; color: white; font-weight: bold; text-align: center;" | POST | | style="background-color: #007bff; color: white; font-weight: bold; text-align: center;" | POST | ||
| <code>/api/infrasctructure/build?id={id}&lat={lat}&lng={lng}&name={name}</code> | | <code>/api/infrasctructure/build?id={id}&lat={lat}&lng={lng}&name={name}</code> | ||
| Errichtet nach Parametern ein Data Center. Standort wird nicht mitgeliefert! | | Errichtet nach Parametern ein Data Center. Standort wird nicht mitgeliefert! | ||
|<nowiki> id | String | Spiel-UUID lat | Zahl mit Nachkommastelle | Latenz | lng Zahl mit Nachkommastelle | |<nowiki> id | String | Spiel-UUID | lat | Zahl mit Nachkommastelle | Latenz | lng | Zahl mit Nachkommastelle | Sprache | name | String | Name des Rechenzentrums</nowiki> | ||
|- | |- | ||
| style="background-color: #007bff; color: white; font-weight: bold; text-align: center;" | POST | | style="background-color: #007bff; color: white; font-weight: bold; text-align: center;" | POST | ||
| <code>/api/infrasctructure/repair?id={id}&index={index}</code> | | <code>/api/infrasctructure/repair?id={id}&index={index}</code> | ||
| Repariert ein defektes Rechenzentrum. | | Repariert ein defektes Rechenzentrum. | ||
|<nowiki> id | String | Spiel-UUID index | Integer | Index der Liste der Rechenzentren</nowiki> | |<nowiki> id | String | Spiel-UUID | index | Integer | Index der Liste der Rechenzentren</nowiki> | ||
|} | |} | ||
Aktuelle Version vom 11. September 2026, 19:09 Uhr
Mit dieser API-Schnittstelle kommuniziert der Client (Frontend) des Social Media Simulators mit dem Spring Boot-Backend, um Spielstände zu initialisieren und abzurufen.
Endpunkte Übersicht
Bearbeiten Quelltext bearbeitenDokumentation der Endpunkte
Bearbeiten Quelltext bearbeiten1. Spieler-UUID generieren
Bearbeiten Quelltext bearbeiten- Endpunkt:
/api/init - Methode: GET
- Format:
text/plain;charset=utf-16
Diese Methode generiert eine neue, eindeutige V4-UUID, registriert sie im RAM des Servers in der aktiven Spielerliste und gibt sie als Byte-Array im UTF-16-Format zurück.
Rückgabe (Response) (Bsp.!)
Bearbeiten Quelltext bearbeiten4f3b89a2-1e4d-4c6a-9b88-123456789abc
---
2. Spielstand abrufen
Bearbeiten Quelltext bearbeiten- Endpunkt:
/api/game - Methode: GET
- Format:
application/json
Gibt den aktuellen Zustand der laufenden Simulation für die übergebene UUID zurück. Der Client nutzt diesen Endpunkt für den regelmäßigen Sync oder beim Neuladen des Dashboards.
Query-Parameter
Bearbeiten Quelltext bearbeiten| Parameter | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
id
|
UUID | Ja | Die eindeutige Kennung des Spielers, die über /api/init generiert wurde.
|
Rückgabe (Response)
Bearbeiten Quelltext bearbeiten- Status 200 (Erfolgreich): Gibt das
GameResponse-JSON-Objekt zurück, wenn die UUID existiert. Falls die ID nicht in der aktiven Spielerliste registriert ist, wirdnullzurückgegeben.
{
"playerId": "4f3b89a2-1e4d-4c6a-9b88-123456789abc",
"companyName": "QuatschStudio Tech",
"money": 50000,
"employees": 1,
"researchPoints": 0
}
Parameter-Spezifikation
Bearbeiten Quelltext bearbeiten| Feld | Typ | Beschreibung |
|---|---|---|
playerId
|
String (UUID) | Die UUID des Spielers zur Validierung auf Client-Seite. |
companyName
|
String | Der Name des Social-Media-Unternehmens. |
money
|
Integer | Der aktuelle Kontostand des Unternehmens im Spiel. |
employees
|
Integer | Die Anzahl der derzeit eingestellten Mitarbeiter. |
researchPoints
|
Integer | Die aktuell angesammelten Forschungspunkte für neue Features oder Algorithmen-Upgrades. |
---
3. Spiel initialisieren
Bearbeiten Quelltext bearbeiten- Endpunkt:
/api/game/init_recall - Methode: POST
- Format:
application/json
Initialisiert die Spielmechaniken für eine bereits generierte UUID auf Basis der übergebenen Unternehmenseinstellungen im Request-Body.
Query-Parameter
Bearbeiten Quelltext bearbeiten| Parameter | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
id
|
UUID | Ja | Die ID des Spielers, für den das Spiel gestartet wird. |
Payload (Request Body)
Bearbeiten Quelltext bearbeitenÜbergabe des GameConfigDTO als JSON-Objekt:
{
"companyName": "QuatschStudio Tech",
"infiniteMoney": false,
"startMoney": 50000,
"startEmployees": 1,
"startResearch": 0
}
Parameter-Spezifikation
Bearbeiten Quelltext bearbeiten| Feld | Typ | Beschreibung |
|---|---|---|
companyName
|
String | Der Name des zu gründenden Social-Media-Unternehmens. |
infiniteMoney
|
Boolean | Sandbox-Modus. Wenn true, ist das Startkapital unbegrenzt.
|
startMoney
|
Integer | Das verfügbare Startkapital bei Spielbeginn. |
startEmployees
|
Integer | Die Anzahl der Mitarbeiter, mit denen das Unternehmen startet. |
startResearch
|
Integer | Der initiale Wert für bereits generierte Forschungspunkte. |
Server-Log (SLF4J)
Bearbeiten Quelltext bearbeitenBeim Aufruf triggert der Controller einen Log-Eintrag auf dem Server (Bsp.!):
2026-06-16T20:23:28.789+02:00 INFO 523700 --- [nio-8080-exec-6] o.r.smsim.api.controller.GameController : Setting up Game for 737e1e57-3e1d-4f0e-b1a8-1fcad8c145d0:GameConfigDTO [companyName=adsf, infiniteMoney=false, startMoney=1000, startEmployees=1, startResearch=0]