Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ao trabalhar com ResponseEntity em Spring Boot, especialmente ao montar respostas com Map, uma dúvida comum é se há uma abordagem mais eficiente que criar e preencher um HashMap manualmente.
No exemplo padrão, fazemos algo assim:
@GetMapping("/api/payments/reservation/{idReservation}")
public ResponseEntity<Map<String, Object>> obtenerPagoReal(@PathVariable("idReservation") int idReservation) {
Payment pay = dao_interface.findByIdReserva(idReservation). Map<String, Object> response = new HashMap<>(). response.put("payment", pay). // outros atributos
return ResponseEntity.ok(response). }
Existem alternativas que podem ajudar a otimizar essa construção, como o uso de Collections.singletonMap() ou até mesmo criar classes de DTO específicas para a resposta. Esses métodos reduzem a complexidade e podem melhorar a legibilidade e desempenho.
Para casos simples, usar Collections.singletonMap() é uma boa prática, mas limita a quantidade de chaves. Caso precise de múltiplos atributos, uma abordagem com DTO é mais limpa e segura. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta.
Qual a experiência de vocês nesse aspecto? Preferem montar o Map manualmente ou já migraram para classes específicas de resposta? Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte.
Concordo, usar DTO ajuda na manutenção e ainda evita problemas com chaves duplicadas ou esquecidas. Além disso, dá pra usar validações mais facilmente.
Eu faria uma DTO específica pra isso, assim fica mais claro e facilita futuras mudanças. Montar Map direto fica meio bagunçado se a resposta crescer.
No meu time, a preferência é por DTO também. Mas às vezes, pra respostas bem simples, o Map funciona, especialmente quando a resposta é só uma ou duas chaves.
Eu vejo que pra frontend, DTOs ajudam a manter a interface mais previsível. Com Map, às vezes é mais difícil garantir a consistência na resposta.