Kotlin Multiplatform Academy · Lektion

Mappa DTO:er till domänmodeller

Separera nätverksformat från era domäntyper

Lektion 3 av 413 steg

Mappa DTO:er till domänmodeller är en gratis lektion i Kotlin Multiplatform Academy på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Kotlin Multiplatform Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Kotlin Multiplatform Academy innehåller totalt 4 lektioner.

Två sorters modeller

Appen har faktiskt två dataformer: den råa DTO:n från API:et och den rena domänmodell som koden behöver.

Vad är en DTO?

En DTO, eller dataöverföringsobjekt, speglar JSON exakt, även när fältnamnen är röriga eller opraktiska.

@Serializable
data class UserDto(val user_name: String, val avatar_url: String?)

Varför inte använda DTO:er direkt?

Om hela appen använder DTO:er sprider sig även en liten API-förändring överallt. En domänmodell skyddar Er från det.

Domänmodellen

Domänmodellen är utformad för Er kod: bra namn, inga onödiga nullable-värden och exakt de fält som användargränssnittet behöver.

data class User(val name: String, val avatar: String)

Mappa i en funktion

Skriv en liten mappningsfunktion som omvandlar en DTO till en domänmodell, på en enda tydlig och testbar plats.

fun UserDto.toDomain() = User(name = user_name, avatar = avatar_url ?: "")

Hantera null vid mappning

Mappning är den perfekta platsen för att tillämpa standardvärden, så att saknade eller null-värden i JSON aldrig kraschar resten av appen.

Mappa även listor

För ett listresultat anropar Ni map på samlingen för att omvandla varje DTO till ett domänobjekt på en gång.

fun List<UserDto>.toDomain() = map { it.toDomain() }

Gör det i repositoryt

Repositoryt hämtar DTO:er och mappar dem sedan till domänmodeller, så att anroparna bara ser den rena typen.

override suspend fun getUsers() =
    client.get(url).body<List<UserDto>>().toDomain()

DTO:er stannar internt

Håll DTO-klasserna interna i datalagret. Ingenting utanför repositoryt ska någonsin importera dem.

Frikopplad och säker

Nu kan API:et byta namn på ett fält och Ni behöver bara ändra mappern, medan domänmodellen och användargränssnittet förblir opåverkade.

Mappningslagret

Här ser Ni gränsen i praktiken: en DTO kommer in, mappern körs och en ren domänmodell kommer ut.

val dto: UserDto = client.get(url).body()
val user: User = dto.toDomain()

Snabb kontroll

Varför mappar man DTO:er till separata domänmodeller?

Sammanfattning

DTO:er speglar rå JSON och stannar i datalagret, medan en mappningsfunktion omvandlar dem till rena domänmodeller som resten av appen använder.

Gratis att börja

Lär dig Kotlin med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Mappa DTO:er till domänmodeller” gratis?

Ja – hela texten till ”Mappa DTO:er till domänmodeller” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Kotlin Multiplatform Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Kotlin Multiplatform Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Mappa DTO:er till domänmodeller”?

Separera nätverksformat från era domäntyper Ni övar på Kotlin Multiplatform Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Kotlin Multiplatform Academy?

Du behöver inga förkunskaper. Utbildningen i Kotlin Multiplatform Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Mappa DTO:er till domänmodeller”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Kotlin Multiplatform Academy-lektionen?

Ja. Varje Kotlin Multiplatform Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Definiera ett Repository-gränssnitt
  2. Lägg API:t bakom repositoryt
  3. Mappa DTO:er till domänmodeller
  4. Exponera resultat som Flow
← Tillbaka till Kotlin Multiplatform Academy