- 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
91 lines
2.4 KiB
Markdown
91 lines
2.4 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.
|
||
|
||
---
|
||
|
||
## Ü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.
|