Este repositorio contiene la resolucion del Ejercicio Cupones.
Consta de 3 proyectos Maven
Proyecto CORE de Cupones, contiene el Modelo de Datos de Cupón y las funcionalidades basicas requeridas.
Aplicacion de Spring Boot que responde a los servicios correspondientes.
Cliente HTTP que consume la API de Items.
Se proveen algunos script en bash para facilitar el uso de la API.
- Para buildear la aplicacion de Spring Boot correr el script
buildAPI.sh
. El Jar resultante se guardara en la carpeta coupons-apirest/target/coupons-apirest-0.0.1.jar. - Para ejecutar las pruebas automaticas correr
runTest.sh
. Esto correra el conjunto de Test con Maven. - Para levantar una instancia local de la API utilizar
startup.sh
. Con el se buildeará el proyecto y lo levantara por default en el puerto 8080.
Es posible cambiar algunas configuraciones de la API REST editando el archivo de configuracion application.properties
o estableciendo Variables de Entorno
- PUERTO -> Por default el puerto que escucha la API es 8080. Este puede modificarse cambiando la variable
server.port
en el archivo de properties o bien estableciendo la variable de entornoSERVER_PORT
. - REPOSITORIO DE ITEMS -> De forma predeterminada se consume el API de items para recuperar su informacion. Adicionalmente tambien puede configurarse un Mock en memoria con algunos datos dummy. Para esto se debe editar la propiedad
repository.item
o bien mediante la variable de entornoREPOSITORY_ITEM
. Los valores posibles son http o mem. - ITEMS API URL -> En caso de utilizar el api de ITEMS debe proverse su URL. Por default ya está establecida.
- CACHE ITEM -> La API de Cupones utiliza un cache para almacenar informacion temporalmente. Mediante la variable
cache.items.clean.time
o la variable de entornoCACHE_ITEMS_CLEAN_TIME
se puede especificar el periodo de tiempo en el que el cache se limpiará (en milisegundos). De forma predeterminada su valor es de 10 minutos.
Se ha usado Jacoco para calcular la Cobertura de Codigo entre los distintos proyectos.
Esta configurado para que genere reportes de Coverage una vez ejecutado el script runTest.sh
.
Los archivos donde se encuentran los reportes para cada proyecto son
- CUPONES : coupons/target/site/jacoco/index.html
- CUPONES API REST : coupons-apirest/target/site/jacoco/index.html
- ITEMS API CLIENT : items-api-client/target/site/jacoco/index.html