ADR-004: Refit for typede REST-klienter⚓︎
Kontekst⚓︎
Kai integrerer med to eksterne REST-APIer: Mimir (Databricks SQL) og WebSak (arkivsystem). Vi trenger en strukturert mate a definere og konsumere disse APIene.
Beslutning⚓︎
Vi bruker Refit for a generere typede HTTP-klienter fra interface-definisjoner:
- IMimirApi — Databricks SQL Statements API (
/api/2.0/sql/statements) - IWebSakApi — Enova WebSak API (
HentSakGittSaksId,HentElektroniskFil...)
Autentisering:
- Mimir: AuthorizationHeaderValueGetter med DefaultAzureCredential for Databricks-token
- WebSak: APIM subscription key via Ocp-Apim-Subscription-Key-header
Konsekvenser⚓︎
Positive: - Sterkt typede API-kontrakter - Automatisk serialisering/deserialisering - Enkel a teste med mock-interfaces
Avveininger: - Mimir bruker asynkron polling (execute → poll for result) som Refit ikke handterer ut av boksen — wrapper-logikk kreves