# LandveX Fas 1 — Object API (förenklad) — STATUS **Datum:** 2026-07-07 **Status:** ✅ KLAR — server körs på port 8083 --- ## Vad som byggts ### 3 endpoints (som begärt) | Endpoint | Metod | Beskrivning | |----------|-------|-------------| | `/v0/objects/{lvx_id}` | GET | Hämta objekt (klass eller modell) från SQLite-databasen | | `/v0/search?q=...` | GET | Enkel fritextsökning över namn, slug och LVX-ID | | `/v0/feedback` | POST | Ta emot feedback, spara till JSONL-fil | ### Extra | Endpoint | Metod | Beskrivning | |----------|-------|-------------| | `/health` | GET | Hälsokoll | --- ## Teknik - **Python + FastAPI** — inga extra dependencies utöver vad som redan fanns - **SQLite** — återanvänder `landvex.db` från Fas 0 (landvex-produktionspaket-v1) - **Uvicorn** — ASGI-server på port 8083 --- ## Filstruktur ``` landvex-paket/api/ ├── main.py # API-kod ├── run.sh # Startskript ├── server.log # Serverlogg ├── feedback/ # Feedback sparas här │ └── feedback_YYYY-MM-DD.jsonl └── FAS1_STATUS.md # Denna fil ``` --- ## Testresultat Alla endpoints verifierade: 1. ✅ `GET /health` — svarar `{status: ok}` 2. ✅ `GET /v0/objects/LVX-ELN-0101` — returnerar kabelskåp med alla fält + `"typ": "klass"` 3. ✅ `GET /v0/search?q=kabel` — returnerar 3 träffar (2 klasser + 1 modell) 4. ✅ `POST /v0/feedback` — sparar till `feedback/feedback_2026-07-07.jsonl` 5. ✅ `GET /v0/objects/LVX-INTE-EXISTERAR` — returnerar 404 med felmeddelande --- ## Konfiguration Miljövariabler (valfria, har defaultvärden): | Variabel | Default | |----------|---------| | `LANDVEX_DB` | `.../landvex-produktionspaket-v1/landvex.db` | | `LANDVEX_FEEDBACK_DIR` | `./feedback` | --- ## Nästa steg (Fas 2-överväganden) - Bounty-skapande från feedback (just nu sparas bara till fil) - Fulltextsökning med FTS5 eller liknande - Autentisering/API-nycklar - Paginering på sökresultat - CORS för webb-frontend