Min Golf Integration Layer
Syfte
Integrationslagret isolerar Min Golfs externa API från applikationens interna datamodell. Övriga delar av systemet ska aldrig skriva Min Golf-data direkt till databasen.
Arkitektur
Min Golf URL
-> MinGolfApiClient
-> tävlingsinformation + klasslista
-> ResultList per classId
-> CompetitionDocument
-> signerad preview
-> import_result_document()
-> SQLite
Moduler
mingolf/client.py: URL-validering, HTTP och klassupptäckt.mingolf/integration.py: normalisering till interna modeller.importers/models.py: källoberoende kontrakt.historical_results.py: atomisk och idempotent databasimport.
Begränsningar i v20.36.0
- Endast publikt åtkomliga tävlingar stöds.
- Resultat hämtas endast när Min Golf publicerar en resultatlista för klassen.
- Lag- och matchspelsformat har ännu inte särskild normalisering.
- API:t är externt och odokumenterat; fixture-baserade regressionstester används för förändringsdetektion.