92 lines
2.5 KiB
Markdown
92 lines
2.5 KiB
Markdown
# 📡 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.
|
||
|
||
---
|
||
|
||
## Aktueller Stand
|
||
|
||
Jede Funktion liest `idMap` und `idUser` **ausschließlich aus der URL**, wie sie von TALAS.web übergeben werden.
|
||
|
||
---
|
||
|
||
## Übergabe der Parameter über URL (`m`, `u`)
|
||
|
||
TALAS.web ruft die Kartenansicht in der Regel so auf:
|
||
|
||
```
|
||
http://localhost: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")` |
|
||
|
||
🔔 Achtung: Diese Kurzform (`m`, `u`) ist systembedingt durch TALAS.web vorgegeben und **soll nicht durch `idMap` oder `idUser` ersetzt werden**, da die Parameter sonst nicht erkannt werden.
|
||
|
||
### Beispiel:
|
||
|
||
```ts
|
||
const params = new URLSearchParams(window.location.search);
|
||
const idMap = params.get("m"); // statt "idMap"
|
||
const idUser = params.get("u"); // statt "idUser"
|
||
```
|
||
|
||
---
|
||
|
||
## Ä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 (z. B. ID 484)
|
||
- 🔍 Fehler leichter erkennbar (Parameter nicht gefunden = echter Fehler)
|
||
|
||
---
|
||
|
||
## 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
|
||
```
|
||
|
||
---
|
||
|
||
## Hinweis zur Konfiguration
|
||
|
||
Die Webservice-Basisadresse wird weiterhin über `.env.local` konfiguriert:
|
||
|
||
```env
|
||
NEXT_PUBLIC_API_BASE_URL=http://10.10.0.13/talas5/ClientData/WebServiceMap.asmx
|
||
```
|
||
|
||
Aber `idMap` und `idUser` werden **nicht** mehr über Umgebungsvariablen gesteuert.
|