docs: Webservice-ID-Parameter über URL statt .env.local (BREAKING CHANGE)

- Entfernt Fallback für idMap und idUser via .env.local
- Anpassung aller fetchGis*-Funktionen zur Nutzung von URL-Parametern
- Dokumentation entsprechend aktualisiert
- CHANGELOG.md hinzugefügt (Version 1.1.65)
This commit is contained in:
ISA
2025-05-15 11:16:39 +02:00
parent 7c67111ccd
commit 0a046974bc
8 changed files with 81 additions and 88 deletions

View File

@@ -1,101 +1,72 @@
# 📡 Webservices TALAS / GIS
# 📡 Webservices Redux Integration (/redux/api/fromWebService)
## Basis-URL
In diesem Verzeichnis befinden sich alle Webservice-Fetch-Funktionen für die Kommunikation mit TALAS.web über SOAP-Endpunkte.
```env
NEXT_PUBLIC_API_BASE_URL=http://[DNS-Name-oder-IP]/[pfad]
# Beispiel: http://10.10.0.13/talas5/ClientData/WebServiceMap.asmx
---
## Aktueller Stand
Jede Funktion liest `idMap` und `idUser` **ausschließlich aus der URL**, wie sie von TALAS.web übergeben werden.
Beispiel:
```ts
const params = new URLSearchParams(window.location.search);
const idMap = params.get("idMap");
const idUser = params.get("idUser");
```
---
## Endpunkte
## Änderung am 2025-05-15
### 1. `GisStationsStatic`
Vorher wurden Default-Werte über `.env.local` als Fallback genutzt:
- **Beschreibung:** Statische Geräteliste einer Karte
- **Methode:** GET
- **Parameter:** `idMap`
- **Beispiel:**
```ts
const idMap = params.get("idMap") || process.env.NEXT_PUBLIC_DEFAULT_ID_MAP || "12";
```
```
GET /GisStationsStatic?idMap=12
http://10.10.0.13/talas5/ClientData/WebServiceMap.asmx/GisStationsStatic?idMap=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)
---
### 2. `GisStationsStaticDistrict`
## Optional: Validierung einbauen
- **Beschreibung:** Statische Geräte inkl. Bereichszuordnung
- **Methode:** GET
- **Parameter:** `idMap`, `idUser`
- **Beispiel:**
```
GET /GisStationsStaticDistrict?idMap=12&idUser=484
http://10.10.0.13/talas5/ClientData/WebServiceMap.asmx/GisStationsStaticDistrict?idMap=12&idUser=484
```
Falls gewünscht, kann ein expliziter Fehler ausgelöst werden:
```ts
if (!idMap || !idUser) {
throw new Error("Fehlende URL-Parameter: idMap oder idUser");
}
```
---
### 3. `GisStationsStatusDistrict`
## Betroffene Dateien
- **Beschreibung:** Aktueller Status von Geräten im Gebiet
- **Methode:** GET
- **Parameter:** `idMap`, `idUser`
- **Beispiel:**
```
GET /GisStationsStatusDistrict?idMap=12&idUser=484
http://10.10.0.13/talas5/ClientData/WebServiceMap.asmx/GisStationsStatusDistrict?idMap=12&idUser=484
```
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
```
---
### 4. `GisStationsMeasurements`
## Hinweis zur Konfiguration
- **Beschreibung:** Live-Messwerte der Geräte
- **Methode:** GET
- **Parameter:** `idMap`, `idUser`
- **Beispiel:**
```
GET /GisStationsMeasurements?idMap=12&idUser=484
http://10.10.0.13/talas5/ClientData/WebServiceMap.asmx/GisStationsMeasurements?idMap=12&idUser=484
```
Die Webservice-Basisadresse wird weiterhin über `.env.local` konfiguriert:
---
```env
NEXT_PUBLIC_API_BASE_URL=http://10.10.0.13/talas5/ClientData/WebServiceMap.asmx
```
### 5. `GisSystemStatic`
- **Beschreibung:** Liste aller Systeme auf der Karte
- **Methode:** GET
- **Parameter:** `idMap`, `idUser`
- **Beispiel:**
```
GET /GisSystemStatic?idMap=12&idUser=484
http://10.10.0.13/talas5/ClientData/WebServiceMap.asmx/GisSystemStatic?idMap=12&idUser=484
```
---
## Nutzung im Code
- Alle Webservice-Aufrufe basieren auf:
```js
const apiBaseUrl = process.env.NEXT_PUBLIC_API_BASE_URL;
```
- Fallback-IDs über `.env.local`:
```env
NEXT_PUBLIC_DEFAULT_ID_MAP=12
NEXT_PUBLIC_DEFAULT_ID_USER=484
```
---
## Hinweise
- ❌ Keine festen IPs/Domains in Code-Dateien verwenden
- ✅ Nur `.env.local` als zentrale Konfiguration nutzen
- ✅ Beispielaufrufe ausschließlich in dieser Datei dokumentieren
- ✅ Webservice-Funktionen befinden sich in:
`/redux/api/fromWebService/fetchGis*.js`
Aber `idMap` und `idUser` werden **nicht** mehr über Umgebungsvariablen gesteuert.