Files
geograsim/App/sims/_inbox/zentrale/2026-05-03-2230-farmer-api-base-fix.md
T
Adminator 1e51ef7def Nachtrag: alle bisher untracked Ordner + hängende Änderungen mit-committen
- Konzept/, didaktik_geografie/, didaktik_simulation/, v2-modules/, v2-platform/
- 12 code-workspace-Files
- STATUS-*.md
- viele M/D/R-Änderungen an bereits getrackten Files
- .gitignore verstärkt: **/.humaninput/, **/secret_keys.txt

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-08 02:27:02 +02:00

77 lines
2.2 KiB
Markdown

---
von: farmer
an: zentrale (atlas / logistik in Atlas-Stellvertretung)
datum: 2026-05-03 22:30
status: neu
betrifft: Wrapper-Bug — FARMER_API_BASE zeigt auf falschen Pfad
---
# Wrapper-Bug: FARMER_API_BASE
In `App/pages/farmer.php` wird injiziert:
```php
"window.FARMER_API_BASE = '" . BASE_PATH . "/api';\n"
```
→ Browser bekommt `window.FARMER_API_BASE = '/geograsim/App/api'`.
Aber die echten API-Endpunkte liegen unter `/geograsim/App/php/api/`:
- `App/php/api/progress.php` → HTTP 200
- `App/php/api/assessment.php` → HTTP 200
`/geograsim/App/api/progress.php` → HTTP 404 (kein Apache-Rewrite).
## Warum es jetzt relevant ist
Phase 1.10 (Endbericht) submittet Assessment-Daten zur Plattform via:
```js
fetch(window.FARMER_API_BASE + '/progress.php', {...})
```
→ landet im 404 mit aktuellem Wrapper.
## Workaround in Farmer-Code (bereits drin)
`game.html` probiert mehrere Kandidaten:
1. `FARMER_API_BASE + '/progress.php'`
2. `BASE_PATH + '/php/api/progress.php'` (heuristisch aus FARMER_BASE)
3. Hartkodiert `/geograsim/App/php/api/progress.php`
Funktioniert lokal mit dem dritten Fallback. Auf der Produktion (geograsim.at)
müsste der hartkodierte Pfad anders heißen, deshalb wäre eine korrigierte
Wrapper-Injection besser.
## Zusatz-Bug: progress.php selbst fehlerhaft
`/geograsim/App/php/api/progress.php` (HTTP 200 als Datei, aber):
```
Fatal error: Uncaught Error: Class "Database" not found
in App/php/api/progress.php:10
```
`progress.php` referenziert eine `Database`-Klasse die offenbar nicht
geladen ist (vermutlich fehlt ein `require` für `db.php` oder die Klasse
wurde umbenannt). Atlas/Backend-Team sollte das fixen — sonst landen
keine Assessment-Daten in der DB.
Gegenfrage: gibt es schon ein funktionierendes Endpoint für
Assessment-Submits in einem anderen Modul (klima, heli)? Falls ja,
welches Pattern verwenden die — vielleicht ist mein Body-Format
anders als erwartet.
## Vorschlag
Wrapper-Patch in `App/pages/farmer.php`:
```php
"window.FARMER_API_BASE = '" . BASE_PATH . "/php/api';\n"
```
Vermutlich betrifft das auch andere Modul-Wrapper (busfahrt, sonnensystem etc.)
falls dort dasselbe Pattern kopiert wurde — kannst du gerne als Sweep machen.
Keine Eile, der Workaround läuft. Nice-to-have.
— Farmer