Sobes.tech
Middle

Que tipos de dados podem ser retornados no Spring MVC?

sobes.tech IA

Resposta da IA

O Spring MVC pode devolver uma vasta gama de tipos de dados como resposta a uma solicitação do cliente. Os mais comuns são:

  • String: Representação em string de dados, frequentemente usada para devolver HTML, XML, JSON ou texto simples.
  • ModelAndView: Objeto que contém tanto os dados do modelo (objetos passados para a vista) quanto o nome da vista (JSP, Thymeleaf, etc.), que será usado para renderizar. Obsoleto, mas ainda presente em código antigo.
  • View: Interface que representa uma vista lógica (por exemplo, um arquivo JSP). Raramente usada diretamente nos controladores.
  • Map<String, ?>: Mapa onde as chaves representam os nomes dos atributos do modelo e os valores são os atributos em si. Usado para adicionar dados ao modelo sem especificar explicitamente o nome da vista (Spring MVC tentará adivinhar o nome da vista a partir da URL).
  • void: Indica que o método do controlador não devolve corpo de resposta. Pode ser usado para redirecionar ou se a resposta for formada diretamente escrevendo em HttpServletResponse.
  • Object: Qualquer objeto Java. Dependendo da configuração do Spring MVC (por exemplo, a presença de HttpMessageConverter), o objeto pode ser convertido automaticamente em JSON, XML ou outro formato para enviar ao cliente.
  • ResponseEntity<?>: Objeto que representa uma resposta HTTP completa, incluindo corpo, cabeçalhos e código de estado. Permite gerir a resposta de forma mais flexível.
  • HttpHeaders: Objeto que representa cabeçalhos HTTP. Pode ser usado em conjunto com ResponseEntity.
  • HttpEntity<?>: Objeto geral que pode conter tanto corpo quanto cabeçalhos HTTP. É a classe base para ResponseEntity.
  • Flux<?>, Mono<?> (quando usando Spring WebFlux): Tipos de dados do Project Reactor para suportar programação reativa, permitindo devolver fluxos de dados.
  • Resource: Representa um recurso, como um arquivo ou fluxo de dados. Frequentemente usado para devolver ficheiros estáticos ou dados do sistema de ficheiros.
  • byte[]: Array de bytes. Útil para devolver dados binários, como imagens ou ficheiros PDF.

A escolha do tipo de retorno depende do tipo de aplicação que está a ser desenvolvida (MVC tradicional com templating ou API RESTful) e do formato de resposta requerido.