fertig bis auf Tankstellen und Graph
This commit is contained in:
115
proxy-server/README.md
Normal file
115
proxy-server/README.md
Normal file
@@ -0,0 +1,115 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user