Challenge Backend - Java Spring Boot (API) - Rev2
Challenge Backend - Java Spring Boot (API) - Rev2
Situación Inicial 📍
Una empresa te contrata a tí y a tu equipo de developers para desarrollar una aplicación
que le permita a niños y niñas hispanohablantes explorar el mundo de Disney. Para hacer
esto, el cliente te solicita que en la aplicación se puedan conocer y modificar los personajes
que lo componen y entender en qué películas participaron cada uno de esos personajes.
Objetivo 🎯
Para lograr la solicitud del cliente, deberás desarrollar una API que permita navegar por
estos personajes y sus películas y se deberá exponer la información para que cualquier
frontend pueda consumirla. Algunos elementos que debes tener en cuenta:
Requerimientos técnicos 💻
1. Modelado de Base de Datos
● Personaje: deberá tener:
○ Imagen
○ Nombre
○ Edad
○ Peso
○ Historia
○ Películas o series asociadas
● Película o Serie:
○ Este ítem deberá contener
■ Imagen
■ Título
■ Fecha de creación
■ Calificación (del 1 al 5)
■ Personajes asociados
● Género:
■ Nombre
■ Imagen
■ Películas o series asociadas
3. Creación de Géneros
4. Detalle de Personaje
En el detalle deberán listarse todos los atributos del personaje, como así también sus
películas o series relacionadas.
5. Búsqueda de Personajes
Deberá permitir buscar por nombre, y filtrar por edad, peso o películas/series en las que
participó.
Para especificar el término de búsqueda o filtros se deberán enviar como parámetros de
query:
● GET /characters?name=nombre
● GET /characters?age=edad
● GET /characters?movies=idMovie
● Imagen.
● Nombre.
● /characters
Recordar que si ningún filtro es enviado, se deben devolver todas las entidades.
Devolverá todos los campos de la película o serie junto a los personajes asociados a la
misma
Deberá permitir buscar por título, y filtrar por género. Además, permitir ordenar los
resultados por fecha de creación de forma ascendiente o descendiente.
● /movies?name=nombre
● /movies?genre=idGenero
● /movies?order=ASC | DESC
El listado deberá mostrar:
● Imagen.
● Título
● Fecha de Creación.
● GET /movies
Recordar que si ningún filtro es enviado, se deben devolver todas las entidades.
Deberá existir un endpoint que nos permita agregar/remover personajes a una película.
● POST /movies/{idMovie}/characters/{idCharacter}
● DELETE /movies/{idMovie}/characters/{idCharacter}
Para realizar peticiones a los endpoints subsiguientes el usuario deberá contar con un
token que obtendrá al autenticarse. Para ello, deberán desarrollar los endpoints de
registro y login, que permitan obtener el token.
● /auth/login
● /auth/register
Tests
De forma opcional, se podrán agregar tests de los diferentes endpoints de la APP,
verificando posibles escenarios de error: