- 1

¿Qué es Spring y por qué es tan popular?
01:49 - 2

Configuración inicial de proyecto Spring Boot con Java 21
07:00 - 3

Crear un endpoint REST con Spring Boot e integrarlo con IA usando LangChain4j
07:29 - 4

Configuración de application.properties y perfiles en Spring Boot
12:23 - 5

Arquitectura por capas orientada al dominio en Java
04:35 quiz de Introducción a Spring Boot
Captura de parámetros con @PathVariable en Spring Boot
Clase 14 de 23 • Curso de Java Spring Boot
Contenido del curso
- 6

Conexión de Spring Boot con PostgreSQL usando Docker
10:36 - 7

Crear entidad con anotaciones JPA para tabla de base de datos
09:30 - 8

Repositorios CRUD con Spring Data sin escribir SQL
07:43 - 9

Creación de endpoints GET en Spring Boot para consultar películas
04:29 quiz de Persistencia con Spring Data y modelado de datos
- 10

Inyección de dependencias y contenedor IoC en Spring Boot
04:23 - 11

Separación de dominio y persistencia con DTOs en Java
08:55 - 12

Configuración de MapStruct con Spring para convertir entidades a DTO
09:26 - 13

Creación de conversores personalizados en MapStruct para enums y strings
10:01 - 14

Captura de parámetros con @PathVariable en Spring Boot
07:21 - 15

Códigos HTTP y Response Entity en APIs REST
06:52 quiz de Buenas prácticas en diseño de APIs
- 16

Crear endpoint POST para guardar películas en Spring Boot
10:20 - 17

Creación de endpoint PUT para actualizar películas en base de datos
11:50 - 18

Sistema de recomendaciones de películas con IA en Java
11:11 - 19

Control de excepciones con @RestControllerAdvice en Spring Boot
09:38 - 20

Validación automática de datos en APIs con Spring Boot
12:34 - 21

Documentación automática de APIs con OpenAPI en Spring Boot
10:52 - 22

Compilación de aplicación Java para producción con PostgreSQL
10:21 - 23

Despliegue de API Java con Docker en Render
10:20
Las API modernas deben ser flexibles y escalables, permitiendo acceder tanto a colecciones completas de recursos como a elementos individuales de manera eficiente. Entender cómo implementar rutas dinámicas usando @PathVariable en Spring Boot es clave para construir servicios robustos y responder solicitudes personalizadas que optimicen la experiencia del usuario y la gestión de datos.
¿Cómo se configuran rutas dinámicas para acceder a una sola película?
Las rutas dinámicas en los controladores permiten capturar parámetros directamente desde la URL, facilitando peticiones específicas como obtener una sola película por su identificador único. Al usar @PathVariable, el ID se toma automáticamente del path y se habilita el procesamiento específico del recurso dentro del método definido en el controlador.
- @GetMapping se utiliza para definir la ruta.
- Una estructura típica sería: @GetMapping("/{id}"), donde id es el parámetro dinámico.
- La notación @RequestMapping("/movies") en el controlador estandariza el prefijo de las rutas, manteniendo el código ordenado y fácil de mantener.
- El método asociado recibe el parámetro (ejemplo: long id) directamente desde la URL.
¿Para qué sirve el método getById en el repositorio y el servicio?
La lógica para buscar una película utilizando su identificador implica separar responsabilidades entre controlador, servicio y repositorio, lo que permite mantener el código modular y escalable:
- El repositorio agrega un nuevo método: getById(long id), que retorna un MovieDTO.
- Dentro de la implementación, se usa el método findById de Spring, el cual ya existe y permite buscar por clave primaria.
- Este método retorna un Optional
. Si la película no existe, se puede manejar devolviendo null con orElse(null). - El siguiente paso es mapear la entidad encontrada a un DTO usando el mapper correspondiente, facilitando la transferencia de datos al cliente.
¿Cómo responde la API ante consultas específicas y cómo se valida la funcionalidad?
Con la ruta dinámica implementada, la API puede:
- Responder a .../movies/{id} con un único recurso, permitiendo consultas como recibir sólo la información de "Interestelar" o "Avengers: Endgame".
- Integrar la prueba de los endpoints mediante herramientas como Postman o directamente desde el navegador, validando que los recursos retornados correspondan con la base de datos.
- La funcionalidad también permite volver a la lista completa simplemente consultando .../movies sin parámetros adicionales.
El enfoque presentado facilita además el manejo de casos donde el recurso solicitado no existe, abriendo la puerta a personalizar respuestas más adelante usando ResponseEntity y los códigos HTTP adecuados. ¿Te gustaría compartir tu experiencia implementando rutas dinámicas o tienes algún caso de uso en mente?