Este proyecto es un ejemplo de una API RESTful utilizando Spring Boot. Incluye operaciones CRUD básicas para gestionar usuarios, con un mapeo entre entidades y DTOs usando ModelMapper y MapStruct. También incluye un manejo excepciones personalizadas.
- Java 11 o superior
- Maven 3.6.0 o superior
- MySQL
-
Clona este repositorio:
git clone https://github.com/AlexisMartinez1913/rest-api-user-management cd rest-api-user-management
-
Configura tu base de datos en
src/main/resources/application.properties
:spring.datasource.url=jdbc:mysql://localhost:3306/human_resources_db?createDatabaseIfNotExist=true spring.datasource.username=root spring.datasource.password=tu_password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true server.port=8081
-
Compila y ejecuta la aplicación:
mvn clean install mvn spring-boot:run
- URL:
/api/users
- Método:
POST
- Cuerpo de la Solicitud:
{ "firstName": "John", "lastName": "Doe", "email": "[email protected]" }
- Respuesta:
{ "id": 1, "firstName": "John", "lastName": "Doe", "email": "[email protected]" }
- URL:
/api/users/{id}
- Método:
GET
- Respuesta:
{ "id": 1, "firstName": "John", "lastName": "Doe", "email": "[email protected]" }
- URL:
/api/users
- Método:
GET
- Respuesta:
[ { "id": 1, "firstName": "John", "lastName": "Doe", "email": "[email protected]" } ]
- URL:
/api/users/{id}
- Método:
PUT
- Cuerpo de la Solicitud:
{ "firstName": "John", "lastName": "Doe", "email": "[email protected]" }
- Respuesta:
{ "id": 1, "firstName": "John", "lastName": "Doe", "email": "[email protected]" }
- URL:
/api/users/{id}
- Método:
DELETE
- Respuesta:
{ "message": "User successfully deleted!" }
Se han definido excepciones personalizadas para manejar casos específicos, como cuando un usuario no se encuentra o cuando un correo electrónico ya existe.
Esta aplicación está integrada con Swagger UI para proporcionar documentación interactiva de la API. Para acceder a Swagger UI, ejecuta la aplicación y navega a http://localhost:8081/swagger-ui.html
.
Si deseas contribuir a este proyecto, por favor realiza un fork del repositorio y envía un pull request con tus mejoras.
Este proyecto está licenciado bajo los términos de la Licencia MIT.