- 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
2.4 KiB
📡 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:
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:
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:
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:
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.