La empresa Clever Business cuenta con 3 sucursales distribuidas en diferentes países: Argentina, Brasil y España. En el último tiempo está teniendo problemas para el control del personal que ingresa y egresa día a día en sus instalaciones, por lo que decide contratar un sistema el cual le permita tener un control total del ingreso/egresos. Para esto la empresa decide contratar tus servicios. Como encargado del desarrollo tu misión es crear una capa de servicios (API REST) que puedan ser consumidos por las diferentes plataformas que cuenta Clever Business (Mobile-Web).
*IDE Apache Netbeans version 17
*JDK version 17
*MySQL Server 8.0.32
*MySQL Workbennch 8.0.32
*Connector/J version 8.0.32
*Postman
*Visual Studio Code
*Crear Base de Datos con los siguientes datos Hostname: localhost puerto: 3307 Contraseña: beclever
Agregar un nuevo Schema con el nombre a gusto y setear como Default o ejecutar el Query "use [nombre Schema elegido].
Ejecutar Script del repositorio github Base de datos-MySQL.
*El proyecto esta creado con Spring Initializr Projet: Maven, Language: java, Spring Boot 3.0.4 con packaging: War Java: version 17
*Clonar Repositorio y abrir el poyecto Maven con Apache NetBeans directorio "Back-End", al abrir esperar que se descarguen todos los complementos para el build
*Luego de abrir el proyecto asegurarnos que el Datasource contenga los siguientes datos de conexion con la base de datos:
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://localhost:3307/beclever?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=beclever
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
*Luego de lo anterior iniciar Springboot Run desde el Navigator y asegurarnos que haya compilado el proyecto con la leyenda : Tomcat started on port(s): 8080 (http) with context path ''
Con el Proyecto en ejecucion en nuestro IDE Apache Netbeans, abrimos Postman y vamos a generar las siguientes solicitudes Http para la prueba de los endpoint de la API
Solicitud Tipo GET para obtener lista de empleados:
http://localhost:8080/employees/employeeList
Solicitud Tipo GET para consultar un empleado por ID (numero del final de la cadena es el id del empleado a consultar):
http://localhost:8080/employees/10
Solicitud Tipo POST para Grabar un empleado pasando los parametros necesarios en Body, Raw, Json
http://localhost:8080/employees/save
{
"gender": "Masculino",
"first_name": "Cristian",
"last_name": "Albarracin"
}
Solicitud Tipo GET para obtener lista de Registros:
http://localhost:8080/registrations/registersList
Solicitud Tipo PUT para modificar un empleado pasando los parametros necesarios en Body, Raw, Json
http://localhost:8080/employees/upDateEmployee
{
"gender": "Masculino",
"employee_Id": 11,
"first_name": "Cristian B.",
"last_name": "Albarracin"
}
Solicitud Tipo GET para consultar un registro por ID (numero del final de la cadena es el id del registro a consultar):
http://localhost:8080/registrations/30
Solicitud Tipo GET para obtener el promedio de Registros por fecha (pasar parametros como muestra la imagen):
http://localhost:8080/registrations/average?dateFrom=2023-01-01&dateTo=2023-12-31
Solicitud Tipo POST para Grabar un registro pasando los parametros necesarios en Body, Raw, Json
http://localhost:8080/registrations/register
{
"employee": {
"gender": "Masculino",
"employee_Id": 11,
"first_name": "Cristian Bartolome",
"last_name": "Albarracin"
},
"date": "2023-03-21T03:00:00.000+00:00",
"registerType": "ingreso",
"businessLocation": "Argentina"
}
Solicitud Tipo PUT para modificar un registro pasando los parametros necesarios en Body, Raw, Json
http://localhost:8080/registrations/upDateRegistration
{
"employee": {
"gender": "Masculino",
"employee_Id": 11,
"first_name": "Cristian B.",
"last_name": "Albarracin"
},
"date": "2023-03-21T03:00:00.000+00:00",
"registerType": "egreso",
"businessLocation": "Argentina",
"registration_Id": 31
}
Solicitud Tipo GET para obtener la cantidad de ingresos y egresos por fecha desde hasta con filtro sucursal nombre o apellido (pasar parametros como muestra la imagen):
http://localhost:8080/registrations/search?dateFrom=2023-01-01&dateTo=2023-12-31&descriptionFilter=&businessLocation=España