Una API REST simple desarrollada con Spring Boot que demuestra los conceptos fundamentales del framework.
Este proyecto es una API básica que permite realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) sobre una entidad Usuario
. Es ideal como primer proyecto para aprender Spring Boot.
- Java 17
- Spring Boot 3.1.0
- Spring Web
- Spring Data JPA
- H2 Database (base de datos en memoria)
- Maven
src/
├── main/
│ ├── java/
│ │ └── com/ejemplo/api/
│ │ ├── ApiApplication.java
│ │ ├── controller/
│ │ │ └── UsuarioController.java
│ │ ├── model/
│ │ │ └── Usuario.java
│ │ ├── repository/
│ │ │ └── UsuarioRepository.java
│ │ └── service/
│ │ └── UsuarioService.java
│ └── resources/
│ └── application.properties
└── test/
Método | Endpoint | Descripción |
---|---|---|
GET | /api/usuarios |
Obtener todos los usuarios |
GET | /api/usuarios/{id} |
Obtener usuario por ID |
POST | /api/usuarios |
Crear nuevo usuario |
PUT | /api/usuarios/{id} |
Actualizar usuario existente |
DELETE | /api/usuarios/{id} |
Eliminar usuario |
POST /api/usuarios
Content-Type: application/json
{
"nombre": "Juan Pérez",
"email": "juan@ejemplo.com",
"edad": 25
}
GET /api/usuarios
- Java 17 o superior
- Maven 3.6 o superior
- Clona el repositorio:
git clone https://github.com/Kelmer-hd/api-users.git
cd api-users
- Compila el proyecto:
mvn clean compile
- Ejecuta la aplicación:
mvn spring-boot:run
La aplicación se ejecutará en http://localhost:8080
El proyecto utiliza H2 como base de datos en memoria. Puedes acceder a la consola de H2 en:
- URL:
http://localhost:8080/h2-console
- JDBC URL:
jdbc:h2:mem:testdb
- Usuario:
sa
- Contraseña: (vacía)
El archivo application.properties
contiene la configuración básica:
# Puerto del servidor
server.port=8080
# Configuración de H2
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
# Consola H2
spring.h2.console.enabled=true
# JPA/Hibernate
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.show-sql=true
Para expandir este proyecto, puedes considerar:
- Agregar validaciones con
@Valid
y Bean Validation - Implementar manejo de excepciones personalizado
- Agregar documentación con Swagger/OpenAPI
- Integrar una base de datos real (MySQL, PostgreSQL)
- Añadir tests unitarios y de integración
- Implementar seguridad con Spring Security