Files
flutter_tank_web_app/proxy-server/README.md

116 lines
2.6 KiB
Markdown

# Lokaler Reverse Proxy Server
Dieser Proxy-Server umgeht CORS-Probleme während der Entwicklung, indem er Anfragen an die PTV Geocoding API weiterleitet.
## 🚀 Installation & Start
### 1. Dependencies installieren (nur Node.js Standard-Module, keine Installation nötig)
Der Server verwendet nur Node.js Built-in Module (`http`, `https`, `url`), daher ist kein `npm install` erforderlich.
### 2. Server starten
```bash
cd proxy-server
node server.js
```
Oder mit npm:
```bash
npm start
```
Der Server läuft dann auf `http://localhost:3000`
## 📡 API Verwendung
**Endpoint:**
```
GET http://localhost:3000/?lat={latitude}&lon={longitude}&apiKey={ptv_api_key}
```
**Beispiel:**
```
http://localhost:3000/?lat=47.9385165&lon=13.762887&apiKey=YOUR_API_KEY
```
**Response (Erfolg):**
```json
{
"success": true,
"location": "Hauptstraße 123, 5020 Salzburg",
"coordinates": {
"lat": 47.9385165,
"lon": 13.762887
},
"rawData": { ... }
}
```
**Response (Fehler):**
```json
{
"success": false,
"error": "Error message",
"fallbackLocation": "Lat: 47.938517, Lon: 13.762887"
}
```
## 🔧 In Flutter App verwenden
Der Flutter Code wurde bereits angepasst, um den lokalen Proxy zu verwenden.
1. Starten Sie den Proxy-Server:
```bash
cd proxy-server
node server.js
```
2. Starten Sie die Flutter App:
```bash
flutter run -d chrome
```
3. Die App verwendet automatisch `http://localhost:3000` wenn verfügbar.
## ⚠️ Wichtige Hinweise
- **Nur für Entwicklung!** Dieser Server ist nicht für Produktionsumgebungen geeignet.
- Der Server muss laufen, während Sie die Flutter App im Development-Modus verwenden.
- Für Produktion: Verwenden Sie die Appwrite Function (siehe [DEPLOYMENT.md](../DEPLOYMENT.md))
## 🛑 Server stoppen
Drücken Sie `Strg+C` im Terminal, wo der Server läuft.
## 🐛 Troubleshooting
### Port bereits belegt
**Problem:** `Error: listen EADDRINUSE: address already in use :::3000`
**Lösung:**
1. Anderen Port verwenden: Ändern Sie `PORT = 3000` in `server.js`
2. Oder den bestehenden Prozess beenden:
```bash
# Port finden
lsof -i :3000
# Prozess beenden
kill -9 PID
```
### Flutter App findet Proxy nicht
**Problem:** "Failed to fetch" oder Connection Error
**Lösung:**
1. Prüfen Sie ob der Proxy läuft (`http://localhost:3000` im Browser öffnen)
2. Stellen Sie sicher, dass Port 3000 korrekt ist
3. Prüfen Sie die Browser Console für Fehler
### CORS immer noch ein Problem
**Problem:** CORS-Fehler trotz Proxy
**Lösung:**
1. Stellen Sie sicher, dass die Flutter App `localhost:3000` verwendet
2. Browser-Cache leeren
3. Entwickler-Tools → Network → "Disable cache" aktivieren