Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] DTO - Esconder a lógica interna do sistema

Olá, estou em dúvida sobre onde fala sobre esconder a lógica do sistema, que esse é um dos sentidos de usar as DTOs. No exemplo mostrado removemos os IDs da visão do solicitante ao realizar uma requisição do tipo GET para um ou mais dados específicos, com isso não entendi como o sistema que está usando a API para realizar futuras alterações na base de dados consegue recuperar esses IDs para realizar uma atualização?

2 respostas
solução!

Olá João! Joia?

Quando usamos DTOs, a ideia é simplificar e esconder detalhes internos do nosso modelo de dados, expondo apenas o que é necessário para a operação específica. No caso de uma operação de atualização, o fluxo geralmente funciona assim:

  1. Recuperação do ID: Quando você realiza uma operação de leitura (GET), o sistema pode retornar um DTO que inclui o ID, pois, para operações de atualização ou exclusão, o cliente precisa saber qual recurso específico está sendo modificado.

  2. Atualização: Quando você quer atualizar um recurso, você envia o ID junto com os dados atualizados. O ID é utilizado pelo sistema para identificar qual registro no banco de dados deve ser alterado.

Por exemplo, ao buscar um filme específico, o sistema pode retornar um DTO com o ID incluído. Quando você quiser atualizar esse filme, você enviará uma requisição PUT ou PATCH com o ID e os novos dados que deseja alterar. O controlador da API usará esse ID para localizar o filme no banco de dados e aplicar as alterações.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Olá Armando! Tudo certo, e com você?

Entendi, então em meu sistema eu posso ter diferentes envios para diferentes tipos de consultas, no caso se eu quero apenas mostrar ao usuário alguns dados em específico, eu não preciso necessariamente enviar os IDs, porém se quero realizar alguma outra operação como Update, Delete, entre outros, ai realmente é necessário disponibilizar essas informações para que o outro sistema saiba como proceder.

Muito obrigado!