image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Laélia Fernandes
Laélia Fernandes18/03/2025 18:50
Compartilhe
Microsoft Certification Challenge #3 DP-100Recomendados para vocêMicrosoft Certification Challenge #3 DP-100

O que é DTO (Data Transfer Object)?

    O que é DTO (Data Transfer Object)?

    DTO (Data Transfer Object) é um padrão de projeto usado para transportar dados entre diferentes camadas de uma aplicação. Ele é comumente utilizado em aplicações que seguem a arquitetura cliente-servidor, como no desenvolvimento de APIs.

    Origem do DTO

    O padrão DTO surgiu no contexto da programção orientada a objetos e foi popularizado pelo livro "Patterns of Enterprise Application Architecture" de Martin Fowler. Ele foi criado para reduzir o número de chamadas remotas em sistemas distribuídos, agrupando dados em um único objeto para facilitar sua transmissão.

    Contexto de uso

    DTOs são usados principalmente para transferir dados entre o backend e o frontend sem expor diretamente as entidades do banco de dados. Isso melhora a segurança, a manutenção do código e a organização dos dados.

    Exemplo de criação de um DTO em Java com Spring Boot

    public class UsuarioDTO {
      private String nome;
      private String email;
    
      public UsuarioDTO(String nome, String email) {
          this.nome = nome;
          this.email = email;
      }
    
      public String getNome() {
          return nome;
      }
    
      public String getEmail() {
          return email;
      }
    }
    

    O DTO acima encapsula apenas os dados necessários para transferência, ao invés de expor toda a entidade Usuario.

    Serialização e Desserialização

    Serialização é o processo de converter um objeto Java em um formato que possa ser armazenado ou transmitido, como JSON ou XML. Desserialização é o processo inverso, onde os dados em JSON ou XML são convertidos de volta em um objeto Java.

    No contexto do DTO, a serialização permite que o objeto UsuarioDTO seja transformado em JSON para ser enviado ao frontend. No frontend, esse JSON pode ser desserializado de volta para um objeto manipulável pela aplicação.

    Exemplo de transformação de UsuarioDTO para JSON:

    {
      "nome": "Maria Silva",
      "email": "maria@email.com"
    }
    

    O Spring Boot usa bibliotecas como Jackson para fazer essa conversão automaticamente.

    Formato de transmissão de dados: JSON e outros formatos

    O formato mais comum para transferência de dados usando DTOs é JSON (JavaScript Object Notation). O JSON é um formato leve de troca de dados baseado em texto, fácil de ler e escrever.

    O que é JSON?

    JSON é um formato de dados que representa objetos como pares chave-valor:

    {
      "nome": "Maria Silva",
      "email": "maria@email.com"
    }
    

    Além do JSON, outros formatos também podem ser usados para transferir dados, como XML e Protobuf, mas JSON se destaca por sua simplicidade e suporte nativo em diversas linguagens.

    Relação do DTO com Backend e Frontend

    No backend, DTOs são usados para estruturar os dados antes de enviá-los para o frontend. No frontend, o DTO é convertido em objetos para exibição e manipulação na interface do usuário.

    Exemplo de uso de DTO no Spring Boot e Angular

    1. Backend (Spring Boot)
    @RestController
    @RequestMapping("/usuarios")
    public class UsuarioController {
      @GetMapping
      public UsuarioDTO getUsuario() {
          return new UsuarioDTO("João Silva", "joao@email.com");
      }
    }
    
    1. Frontend (Angular - consumo da API)
    export interface UsuarioDTO {
    nome: string;
    email: string;
    }
    
    fetch('http://localhost:8080/usuarios')
    .then(response => response.json())
    .then((data: UsuarioDTO) => console.log(data));
    

    Nesse exemplo, o Angular faz uma requisição para a API do Spring Boot, que retorna um objeto JSON baseado no DTO UsuarioDTO. A serialização ocorre no backend ao converter o objeto Java para JSON, e a desserialização ocorre no frontend ao transformar o JSON em um objeto TypeScript.

    Conclusão

    O uso de DTOs é essencial para otimizar a comunicação entre backend e frontend, garantindo segurança, eficiência e clareza na estrutura dos dados. Quando integrado a tecnologias como Spring Boot e Angular, ele facilita o desenvolvimento de aplicações escaláveis e bem estruturadas.

    Compartilhe
    Recomendados para você
    Microsoft AI for Tech - Azure Databricks
    Microsoft Certification Challenge #3 DP-100
    Decola Tech 2025
    Comentários (1)

    RG

    Roberto Gomes - 19/03/2025 12:16

    Muito bom, achei bastante didático, seria legal se tivesse sido assim nas aulas ou algumas aulas só sobre esses conceitos.

    Recomendados para vocêMicrosoft Certification Challenge #3 DP-100