Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

Cuando implementamos nuestros servicios REST que devuelven objetos de la lógica de negocio de nuestra aplicación se pueden dar dos casos: los objetos que devolvemos son entidades, nuestros objetos no son entidades.

...

  1. Creamos dentro del paquete model ( por ejemplo: es.um.atica.miaplicacion.model) los objetos DTO que vamos a enviar. Si el proyecto es grande y lo tenemos dividido en módulos tendremos diferentes paquetes model por lo que deberemos crear cada DTO en el que corresponda.
  2. Dentro de nuestras entidades creamos un método toDTO() o varios toXXDTO() (siendo XX un indentificador que aporte valor semántico) que devolverá un objeto del tipo DTO con los datos que requiera de la entidad.
  3. Modificamos nuestro método REST para que, a partir de una lista de entidades, devuelva una lista de DTO, para esto usaremos programación funcional

Método tradicional:

Bloque de código
@GetMapping("api/{version}/usuarios")
	public List<Usuario> listarUsuarios() {
		return this.usuarioService.findAll(); //Llamamos al servicio de usuarios que devolverá una lista de todos los usuarios del sistema (son Entidades).
	}


Devolviendo DTO con programación funcional:

Bloque de código
@GetMapping("api/{version}/usuarios")
	public List<UsuarioDTO> listarUsuarios() {					
		return  this.usuarioService.findAll().parallelStream().map(Usuario::toDTO).collect(Collectors.toList());
	}

...