API REST en Java para la gestión de clientes (CRUD) usando Spring Boot.
- Endpoints REST: crear / leer / actualizar / eliminar clientes.
- Persistencia en memoria con H2 (dev).
- Documentación OpenAPI (Swagger UI).
- Manejo básico de validaciones y errores.
- Java 17+ (recomendado 21)
- Maven 3.8+
- (Opcional) Docker + Docker Compose para MySQL
- Clonar:
git clone https://github.com/tu_usuario/java-client-api.git
cd java-client-api
2. Ejecutar con Maven:
mvn spring-boot:run
O build + run:
mvn clean package
java -jar target/java-client-api-0.0.1-SNAPSHOT.jar
3. Abrir:
- API: http://localhost:8080/api/clients
- Swagger UI: http://localhost:8080/swagger-ui.html
- H2 console: http://localhost:8080/h2-console (JDBC: jdbc:h2:mem:clientdb, user: sa, pass: blank)
## Switch a MySQL (opcional)
1. Levantar MySQL (docker-compose incluido):
docker-compose up -d
2. Editar application.properties para apuntar a MySQL y reiniciar la app.
Endpoints (ejemplos curl)
- Crear:
curl -X POST "http://localhost:8080/api/clients" -H "Content-Type: application/json" \
-d '{"name":"Juan Perez","email":"juan@example.com","phone":"123456789"}'
- Listar:
curl http://localhost:8080/api/clients
- Obtener por id:
curl http://localhost:8080/api/clients/1
- Actualizar:
curl -X PUT "http://localhost:8080/api/clients/1" -H "Content-Type: application/json" \
-d '{"name":"Juan Updated","email":"juan2@example.com","phone":"987654321"}'
- Borrar:
curl -X DELETE http://localhost:8080/api/clients/1