docs: Projektstruktur der Dokumentation an Quellcode angepasst
- Verzeichnisstruktur unter /docs spiegelt nun die tatsächliche Projektstruktur wider - frontend/server-Trennung entfernt zugunsten von /docs/pages, /docs/redux, /docs/utils etc. - Erhöht Wiederauffindbarkeit, Übersichtlichkeit und Entwicklerfreundlichkeit
This commit is contained in:
90
docs/redux/api/fromWebService.md
Normal file
90
docs/redux/api/fromWebService.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# 📡 Webservices – Redux Integration (/redux/api/fromWebService)
|
||||
|
||||
In diesem Verzeichnis befinden sich alle Webservice-Fetch-Funktionen für die Kommunikation mit TALAS.web über SOAP-Endpunkte.
|
||||
|
||||
---
|
||||
|
||||
## Übergabe der Parameter über URL (`m`, `u`)
|
||||
|
||||
TALAS.web ruft die Kartenansicht in der Regel so auf:
|
||||
|
||||
```
|
||||
http://[SERVER]:3000/?m=10&u=484
|
||||
```
|
||||
|
||||
Daraus ergeben sich folgende Zuweisungen:
|
||||
|
||||
| URL-Parameter | Bedeutung | Variable im Code |
|
||||
| ------------- | --------- | -------------------------------- |
|
||||
| `m` | `idMap` | `const idMap = params.get("m")` |
|
||||
| `u` | `idUser` | `const idUser = params.get("u")` |
|
||||
|
||||
### Beispiel:
|
||||
|
||||
```ts
|
||||
const params = new URLSearchParams(window.location.search);
|
||||
const idMap = params.get("m");
|
||||
const idUser = params.get("u");
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Änderung am 2025-05-15
|
||||
|
||||
Vorher wurden Default-Werte über `.env.local` als Fallback genutzt:
|
||||
|
||||
```ts
|
||||
const idMap = params.get("idMap") || process.env.NEXT_PUBLIC_DEFAULT_ID_MAP || "12";
|
||||
```
|
||||
|
||||
Das wurde entfernt, um folgende Ziele zu erreichen:
|
||||
|
||||
- ❌ Keine fest eingetragenen Defaults im Browser sichtbar
|
||||
- ✅ Verbindlichkeit: TALAS.web übergibt die Werte immer korrekt via URL
|
||||
- 🔐 Sicherheit: Kein versehentliches Verwenden eines falschen Users
|
||||
- 🔍 Fehler leichter erkennbar (Parameter nicht gefunden = echter Fehler)
|
||||
|
||||
---
|
||||
|
||||
## Hinweis zur Webservice-Konfiguration
|
||||
|
||||
Die Webservice-Basisadresse wird **nicht mehr über `.env.local` gesteuert**.
|
||||
|
||||
Stattdessen wird sie dynamisch im Client anhand des aktuellen Hostnamens bestimmt:
|
||||
|
||||
```js
|
||||
const baseUrl = `${window.location.origin}/talas5/ClientData/WebServiceMap.asmx`;
|
||||
```
|
||||
|
||||
➡ Dadurch ist kein Rebuild mehr nötig bei IP-Wechseln oder Serverumzügen.
|
||||
Die Build-Version kann auf jedem Server wiederverwendet werden.
|
||||
|
||||
---
|
||||
|
||||
## Optional: Validierung einbauen
|
||||
|
||||
Falls gewünscht, kann ein expliziter Fehler ausgelöst werden:
|
||||
|
||||
```ts
|
||||
if (!idMap || !idUser) {
|
||||
throw new Error("Fehlende URL-Parameter: idMap oder idUser");
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Betroffene Dateien
|
||||
|
||||
Diese Änderung betrifft alle Funktionen in:
|
||||
|
||||
```
|
||||
/redux/api/fromWebService/fetchGisStationsStatic.js
|
||||
/redux/api/fromWebService/fetchGisStationsStaticDistrict.js
|
||||
/redux/api/fromWebService/fetchGisStationsStatusDistrict.js
|
||||
/redux/api/fromWebService/fetchGisStationsMeasurements.js
|
||||
/redux/api/fromWebService/fetchGisSystemStatic.js
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Diese Konvention stellt sicher, dass Webservices unabhängig von IP und Serverkonfiguration aufgerufen werden können.
|
||||
Reference in New Issue
Block a user