# 🌐 API Proxy – [...path].js

## Zweck

Diese Datei (`pages/api/[...path].js`) dient als **Catch-All Proxy**  
für externe Webservice-Aufrufe über die Next.js API-Routing-Struktur.

Sie leitet alle Anfragen unter `/api/...` an einen Zielserver weiter.

---

## Technologie

Verwendet wird:

- [`http-proxy-middleware`](https://github.com/chimurai/http-proxy-middleware)
- Dynamische Zielauswahl basierend auf Umgebungsvariable `NEXT_PUBLIC_API_PORT_MODE`

---

## Ziel-URL-Konfiguration

```js
const mode = process.env.NEXT_PUBLIC_API_PORT_MODE;

const target =
  mode === "dev"
    ? "http://localhost:80"
    : "http://localhost"; // oder z. B. http://10.10.0.13
```

➡ Dadurch entfällt die feste Konfiguration über `NEXT_PUBLIC_SERVER_URL`.

---

## Beispiel: Weiterleitung

Request im Browser:

```
GET /api/talas5/ClientData/WebServiceMap.asmx/GisSystemStatic?idMap=12&idUser=484
```

→ wird weitergeleitet an:

```
http://localhost/talas5/ClientData/WebServiceMap.asmx/GisSystemStatic?idMap=12&idUser=484
```

---

## Verwendete Einstellungen

```js
export default createProxyMiddleware({
  target,
  changeOrigin: true,
  pathRewrite: {
    "^/api": "/", // entfernt /api aus dem Pfad
  },
  logLevel: "debug",
});
```

---

## Vorteile

| Punkt                     | Nutzen                                  |
|---------------------------|------------------------------------------|
| Keine doppelte API-Konfiguration | ✅ `.env.local` bereinigt         |
| Wiederverwendbar & flexibel     | ✅ funktioniert lokal & auf Servern |
| Klar gekapselt in `[...path].js` | ✅ übersichtlich                   |

---

📄 Pfad: `/docs/server/pages/api/apiProxy.md`