...
Para crear nuestros servicios REST debemos seguir las buenas prácticas que están definidas en esta página de la wiki: Buenas prácticas con servicios REST
Devolver ResponseEntity o ResponseStatusException
En los métodos en los que devolvamos datos, si se devuelven los datos correctamente devolveremos objetos tipo ResponseEntity. Este tipo nos da más flexibilidad, permitiendo modificar la respuesta HTTP entera, controlando el código que se devuelve, los headers y los datos del body.
Un ejemplo de uso sería el siguiente. Para crear unResponseEntityun ResponseEntity que devuelva un objetoobjeto UsuarioDTO, y códigocódigo OK 200:
| Bloque de código | ||
|---|---|---|
| ||
@GetMapping(value = "/usuarios", params = "login")
public ResponseEntity<UsuarioDTO> usuariosLogin(@RequestParam login) {
// ...
return new ResponseEntity<>(usuarioDto, HttpStatus.OK);
} |
También podríamos mandar un400 Forbiddenasí:En el caso de que queramos devolver un error, por ejemplo, un Forbidden porque el usuario que ha solicitado un recurso no tiene acceso, lanzaremos una excepción ResponseStatusException, pues esta nos ofrece más información en la respuesta que se da.
| Bloque de código | ||
|---|---|---|
| ||
return} catch (Exception e) { throw new ResponseEntity<>ResponseStatusException( HttpStatus.FORBIDDEN, "FORBIDDEN con ResponseStatusException", e); } |
Controlador REST en Spring Boot
...