Este repositorio contiene un pequeño proyecto que implementa una API REST CRUD (Create, Read, Update, Delete) utilizando las tecnologías de Spring Boot, Hibernate y Lombok en el lenguaje de programación Java, con MySQL como base de datos. El objetivo de este proyecto es proporcionar un ejemplo básico de cómo construir un servicio web que pueda realizar operaciones CRUD en una base de datos utilizando las herramientas mencionadas.
Antes de ejecutar este proyecto, asegúrate de tener instalados los siguientes elementos:
- Java: Asegúrate de tener una versión de Java 8 o superior instalada.
- Maven: Se utiliza Maven como herramienta de construcción y gestión de dependencias.
- MySQL: Asegúrate de tener un servidor MySQL instalado y configurado (asegúrate de tener el nombre de usuario, contraseña y la URL de conexión a la base de datos MySQL).
- Git: Si deseas clonar el repositorio, asegúrate de tener Git instalado.
Sigue estos pasos para ejecutar el proyecto:
-
Clona el repositorio: Si no lo has hecho, clona este repositorio a tu máquina local utilizando el comando
git clone
. -
Configura la base de datos: Abre el archivo
application.properties
en la carpetasrc/main/resources
y modifica la configuración de la base de datos según tus necesidades (nombre de usuario, contraseña y URL de conexión). -
Compila el proyecto: Abre una terminal en la raíz del proyecto y ejecuta el siguiente comando para compilar el proyecto:
mvn clean install
-
Abre el archivo
application.properties
en la carpetasrc/main/resources
. -
Modifica la configuración de la base de datos según tus necesidades (nombre de usuario, contraseña y URL de conexión).
Para compilar el proyecto, abre una terminal en la raíz del proyecto y ejecuta el siguiente comando:
mvn clean install
El proyecto sigue la estructura estándar de una aplicación Spring Boot, siguiendo una arquitectura MVC (Modelo-Vista-Controlador) que se organiza en varias capas:
-
src/main/java/
: Contiene los archivos fuente Java, donde se organiza la lógica de la aplicación.controller
: Aquí se encuentran los controladores (controllers) de la aplicación, que manejan las solicitudes HTTP y gestionan las respuestas.entity
: Define las entidades de datos (entidades) que representan las estructuras de la base de datos y se utilizan en el mapeo con Hibernate.repository
: Contiene las interfaces que definen las operaciones de acceso a la base de datos (repository).service
: En esta carpeta se encuentran las clases que implementan la lógica de negocio (services), donde se maneja la interacción entre los controladores y los repositorios.exceptions
: Puede contener clases de excepciones personalizadas, si es necesario manejar casos excepcionales de manera específica.
-
src/main/resources
: Contiene los recursos, como archivos de configuración y plantillas.
Esta estructura modular y organizada facilita el desarrollo y mantenimiento del proyecto, siguiendo las mejores prácticas de diseño en una arquitectura MVC. Cada componente cumple su función específica, lo que mejora la legibilidad y extensibilidad del código.
La aplicación estará disponible en http://localhost:8080
. Puedes probar los siguientes endpoints utilizando una herramienta para realizar peticiones HTTP (por ejemplo, Postman):
- GET /api/employees: Obtener todos los empleados.
- GET /api/employees/{id}: Obtener un empleado por su ID.
- POST /api/employees: Crear un nuevo empleado (debes proporcionar los datos en el cuerpo de la petición).
- PUT /api/employees/{id}: Actualizar un empleado existente (debes proporcionar los datos actualizados en el cuerpo de la petición).
- DELETE /api/employees/{id}: Eliminar un empleado por su ID.