- Crear un proyecto Spring Boot usando el sitio web Spring Initializr;
- Importar el proyecto a IntelliJ y ejecutar una aplicación Spring Boot a través de la clase que contiene el método
main
; - Crear una clase Controller y mapear una URL en él usando las anotaciones
@RestController
y@RequestMapping
; - Realizar una solicitud de prueba en el navegador accediendo a la URLmapeada en el Controller.
- Mapear solicitudes POST en una clase Controller;
- Enviar solicitudes POST a la API usando Insomnia;
- Enviar datos a la API en formato JSON;
- Utilizar la anotación
@RequestBody
para recibir datos del cuerpo de la solicitud en un parámetro en el Controller; - Use el padrón DTO (Data Transfer Object), a través de Java Records, para representar los datos recibidos en una solicitud POST.
- Agregar nuevas dependencias en el proyecto;
- Asignar una entidad JPA y crear una interfaz de Repositorio para ella;
- Utilizar Flyway como herramienta de migración de proyectos;
- Realice validaciones con Bean Validation usando algunas de sus anotaciones, como
@NotBlank
.
- Usar la anotación
@GetMapping
para mapear métodos en los Controllers que producen datos; - Usar la interfaz
Pageable
de Spring para realizar consultas con paginación; - Controlar la paginación y el ordenamiento de los datos devueltos por la API con los parámetros
page
,size
ysort
; - Configurar el proyecto para que los comandos SQL se visualicen en la consola.
- Mapear solicitudes PUT con la anotación
@PutMapping
; - Escribir un código para actualizar la información de un registro en la base de datos;
- Mapear solicitudes DELETE con la anotación
@DeleteMapping
; - Mapear parámetros dinámicos en la URL con la anotación
@PathVariable
; - Implementar el concepto de exclusión lógica utilizando un atributo booleano.
- Usar la clase
ResponseEntity
, de Spring, para personalizar los retornos de los métodos de una clase Controller; - Modificar el código HTTP devuelto en las respuestas de la API;
- Agregar encabezados a las respuestas de la API;
- Utilice los códigos HTTP más apropiados para cada operación realizada en la API.
- Crear una clase para aislar el manejo de excepciones de API, utilizando la anotación
@RestControllerAdvice
; - Utilizar la anotación
@ExceptionHandler
, de Spring, para indicar qué excepción debe capturar un determinado método de la clase de manejo de errores; - Manejar errores 404 (Not Found) en la clase de manejo de errores;
- Manejar errores 400 (Bad Request), para errores de validación de Bean Validation, en la clase de manejo de errores;
- Simplificar el JSON devuelto por la API en casos de error de validación de Bean Validation.
- Identificar cómo funciona el proceso de autenticación y autorización en una API Rest;
- Agregar Spring Security al proyecto;
- Cómo funciona el comportamiento padrón de Spring Security en una aplicación;
- Implementar el proceso de autenticación en la API, de forma Stateless, utilizando clases y configuraciones de Spring Security.
- Agregar la biblioteca
Auth0 java-jwt
como una dependencia del proyecto; - Utilizar esta biblioteca para generar un token en la API;
- Inyectar una propiedad del archivo application.properties en una clase administrada por Spring, usando la anotación
@Value
; - Devolver un token generado en la API cuando un usuario se autentica.
- Los Filters funcionan en una solicitud;
- Implementar un Filter creando una clase que herede de la clase
OncePerRequestFilter
de Spring; - Utilizar la biblioteca
Auth0 java-jwt
para validar los tokens recibidos en la API; - Realizar el proceso de autenticación de la solicitud, utilizando la clase
SecurityContextHolder
de Spring; - Liberar y restringir solicitudes, según la URL y el verbo del protocolo HTTP.