Teniendo las siguientes entidades:
- Género:
- Código (Usar enumeración)
- Descripción.
- Película:
- Título. Obligatorio.
- Año: Obligatorio. Número positivo mayor que 1900
- Duración: Obligatorio. Número positivo menor que 500.
- Actores: Por lo menos debe tener uno.
- Género: Obligatorio.
- Ejemplares. Lista de ejemplares
- Actor:
- Nombre. Obligatorio
- Primer Apellido: Obligatorio
- Segundo Apellido: Sólo podrá venir relleno si está cubierto el primer apellido.
- Fecha de Nacimiento: Obligatorio y mayor que 1/1/1900
- Ejemplar
- Estado. Obligatorio. Enumerado: Libre, Reservado, Alquilado, Comprado
- Fecha alta en la tienda (stock)
- Fecha baja en la tienda (stock)
- Fecha salida de la tienda (alquiler / compra)
- Fecha devolución en la tienda (alquiler / compra)
Se pide:
- Por defecto, el registro de películas vacío salvo los géneros que serán Comedia, Western, Ciencia-Ficción, Romántica e Histórica.
- Crear métodos CRUD para los actores.
- Crear métodos CRUD para las películas.
- Crear interfaz para dar de alta actores y poder modificar sus datos.
- Crear interfaz para localizar películas por título, año, duración, nombre del autor, primer apellido del autor.
- Las validaciones se realizarán mediante constraints en los DTO correspondientes.
- Crear interfaz para permitir alquilar y devolver ejemplares de películas, así como la gestión de su stock (opcionalmente).
-
GET
->/api/privado/generos/
: listar géneros. -
GET
->/api/privado/peliculas/
: listar películas. -
GET
->/api/privado/peliculas/{id}
: Obtener una película. -
POST
->/api/privado/peliculas
: Crear Película. -
PUT
->/api/privado/peliculas/{id}
: Modificar película. -
DELETE
->/api/privado/peliculas/{id}
: Borrar película. -
GET
->/api/privado/actores/
: listar actores. -
GET
->/api/privado/actores/{id}
: Obtener una actor. -
POST
->/api/privado/actores
: Crear actor. -
PUT
->/api/privado/actores/{id}
: Modificar actor. -
DELETE
->/api/privado/actores/{id}
: Borrar actor. -
GET
->/api/privado/peliculas/search
: Localizar películas. -
GET
->/api/privado/peliculas/{id}/stock/
: listar el stock de una película. -
POST
->/api/privado/peliculas/{id}/stock/
: Modificar (incrementar / decrementar) el stock de una película. -
POST
->/api/privado/store/peliculas/{id}/e/{eid}/?action=sell
: Compraventa de un ejemplar. -
POST
->/api/privado/store/peliculas/{id}/e/{eid}/?action=rent
: Alquila un ejemplar. -
POST
->/api/privado/store/peliculas/{id}/e/{eid}/?action=return
: Devuelve un ejemplar.
For further reference, please consider the following sections:
- Official Apache Maven documentation
- Spring Boot Maven Plugin Reference Guide
- Create an OCI image
- Spring Web
- Spring Security
- Spring Data JPA
- Validation
- Spring Boot Actuator
- Spring Boot DevTools
- Spring Configuration Processor
- Spring HATEOAS
The following guides illustrate how to use some features concretely:
- Building a RESTful Web Service
- Serving Web Content with Spring MVC
- Building REST services with Spring
- Securing a Web Application
- Spring Boot and OAuth2
- Authenticating a User with LDAP
- Accessing Data with JPA
- Accessing data with MySQL
- Validation
- Building a RESTful Web Service with Spring Boot Actuator
- Building a Hypermedia-Driven RESTful Web Service