Kotlin Multiplatform Academy · Aula

Mapeie DTOs para modelos de domínio

Separe os formatos da rede dos seus tipos de domínio

Aula 3 de 413 etapas

Mapeie DTOs para modelos de domínio é uma aula grátis de Kotlin Multiplatform Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Kotlin Multiplatform Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kotlin Multiplatform Academy inclui 4 aulas no total.

Dois tipos de modelos

Na prática, seu aplicativo tem duas formas de dados: o DTO bruto da API e o modelo de domínio limpo que o seu código espera.

O que é um DTO

Um DTO, ou objeto de transferência de dados, reproduz exatamente o JSON, mesmo quando os nomes dos campos são confusos ou pouco práticos.

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

Por que não usar DTOs diretamente

Se todo o aplicativo usar DTOs, uma pequena alteração na API se espalhará por toda parte. Um modelo de domínio protege você disso.

O modelo de domínio

O modelo de domínio é moldado para o seu código: nomes claros, nenhum valor nulo desnecessário e exatamente os campos de que a interface precisa.

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

Mapear em uma função

Escreva uma pequena função de mapeamento que transforme um DTO em um modelo de domínio, tudo em um único local organizado e testável.

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

Lidar com nulos durante o mapeamento

O mapeamento é o lugar ideal para aplicar valores padrão, para que campos JSON ausentes ou nulos nunca façam o restante do aplicativo falhar.

Mapear listas também

Para uma resposta em lista, chame map na coleção para converter todos os DTOs em itens de domínio de uma só vez.

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

Fazer isso no repositório

O repositório busca os DTOs e depois os mapeia para modelos de domínio, para que os chamadores vejam apenas o tipo limpo.

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

Manter os DTOs internos

Mantenha as classes DTO internas à camada de dados. Nada fora do repositório deve importá-las.

Desacoplado e seguro

Agora a API pode renomear um campo, e você corrige apenas o mapeador, enquanto o modelo de domínio e a interface do usuário permanecem estáveis.

A camada de mapeamento

Esta é a fronteira em ação: um DTO entra, o mapeador é executado e um modelo de domínio limpo sai.

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

Verificação rápida

Por que mapear DTOs para modelos de domínio separados?

Recapitulação

Os DTOs reproduzem o JSON bruto e permanecem na camada de dados, enquanto uma função de mapeamento os transforma em modelos de domínio limpos usados pelo restante do aplicativo.

Grátis para começar

Aprenda Kotlin com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
30
Aulas
120

Perguntas Frequentes

A aula “Mapeie DTOs para modelos de domínio” é grátis?

Sim — o texto completo de “Mapeie DTOs para modelos de domínio” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Kotlin Multiplatform Academy, atualize para CoddyKit PRO. O curso de Kotlin Multiplatform Academy inclui 4 aulas no total.

O que vou aprender em “Mapeie DTOs para modelos de domínio”?

Separe os formatos da rede dos seus tipos de domínio Você pratica Kotlin Multiplatform Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Kotlin Multiplatform Academy?

Nenhuma experiência prévia é necessária. Kotlin Multiplatform Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Mapeie DTOs para modelos de domínio”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Kotlin Multiplatform Academy?

Sim. Cada aula de Kotlin Multiplatform Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Defina uma interface de repositório
  2. Encapsule a API por trás do repositório
  3. Mapeie DTOs para modelos de domínio
  4. Exponha resultados como Flow
← Voltar para Kotlin Multiplatform Academy