Files
nodeMap/docs/frontend/hooks/useFetchPoiData.md
ISA 69830a1185 refactor: API-Port-Variable entfernt, dynamische Port-Nutzung eingeführt
- NEXT_PUBLIC_API_PORT_3000 entfernt
- API-Aufrufe basieren jetzt auf window.location.hostname:3000
- kein Rebuild mehr bei IP-Änderung nötig
- .env.local aufgeräumt
- CHANGELOG.md auf 1.1.68 aktualisiert
2025-05-16 07:37:25 +02:00

1.2 KiB
Raw Blame History

📍 useFetchPoiData Laden von POI-Typen und Icons

Zweck

Dieser React-Hook wird im Frontend verwendet, um:

  1. Alle POI-Typen (poiTyp/readPoiTyp)
  2. Alle POI-Icons (pois/poi-icons)

vom Server abzurufen und sie in lokale React-Komponenten zu laden.


Aufrufstruktur

const API_BASE_URL = typeof window !== "undefined" ? `${window.location.protocol}//${window.location.hostname}:3000` : "";

await fetch(`${API_BASE_URL}/api/talas_v5_DB/poiTyp/readPoiTyp`);
await fetch(`${API_BASE_URL}/api/talas_v5_DB/pois/poi-icons`);

Erklärung

Da die Anwendung produktiv über Port 80 läuft, aber die Next.js-API auf Port 3000, wird :3000 explizit in der URL ergänzt.

Dieser Hook funktioniert nur im Client-Browser. Die Prüfung mit typeof window !== "undefined" schützt davor, dass window im SSR-Kontext (Server-Side Rendering) undefined ist.


Verhalten bei Fehlern

  • Wenn die Antwort nicht ok ist (z.B. 404, 500), wird ein Fehler in der Console angezeigt.
  • Wenn die Daten kein Array sind (für poiTyp), wird eine zusätzliche Validierung ausgelöst.

Siehe auch

  • MapComponent
  • pages/api/talas_v5_DB/poiTyp/readPoiTyp.js
  • pages/api/talas_v5_DB/pois/poi-icons.js