Loading repository data…
Loading repository data…
joacomendiola / repository
Proyecto personal | Java Spring Boot | API REST con MySQL y CRUD
API REST completa para gestión de productos y usuarios desarrollada con Spring Boot y PostgreSQL
API REST desarrollada con Spring Boot 3.x para la gestión de productos y usuarios.
Implementa operaciones CRUD (Create, Read, Update, Delete) con persistencia en PostgreSQL, usando Spring Data JPA y arquitectura en capas.
Este es un proyecto personal de práctica, que forma parte de un sistema fullstack donde un frontend en React consume esta API.
🔗 Frontend: Proyecto-GestionProductos-API-frontend
src/main/java/com/example/proyecto/
├── config/
│ └── CorsConfig.java
│
├── controller/
│ ├── HelloController.java
│ ├── ProductoController.java
│ └── UsuarioController.java
│
├── model/
│ ├── Producto.java
│ └── Usuario.java
│
├── repository/
│ ├── ProductoRepository.java
│ └── UsuarioRepository.java
│
└── ProyectoApplication.java
id → Identificador úniconombre → Nombre del productoprecio → Precio del productoimagenUrl → URL de imagen asociadaid → Identificador úniconombre → Nombre del usuariocorreo → Correo electrónico/productos)| Método | Endpoint | Descripción |
|---|---|---|
| GET | /productos | Listar todos los productos |
| GET | /productos/{id} | Obtener producto por ID |
| POST | /productos | Crear nuevo producto |
| PUT | /productos/{id} | Actualizar producto existente |
| DELETE | /productos/{id} | Eliminar producto |
/usuarios)| Método | Endpoint | Descripción |
|---|---|---|
| GET | /usuarios | Listar todos los usuarios |
| GET | /usuarios/{id} | Obtener usuario por ID |
| POST | /usuarios | Crear nuevo usuario |
| PUT | /usuarios/{id} | Actualizar usuario existente |
| DELETE | /usuarios/{id} | Eliminar usuario |
/hello)| Método | Endpoint | Descripción |
|---|---|---|
| GET | /hello | Endpoint de prueba (health) |
El proyecto está desplegado en Render como servicio backend, conectado a una base de datos PostgreSQL en la nube.
En src/main/resources/application.properties:
spring.datasource.url=${SPRING_DATASOURCE_URL}
spring.datasource.username=${SPRING_DATASOURCE_USERNAME}
spring.datasource.password=${SPRING_DATASOURCE_PASSWORD}
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
# Actuator (para health check de Render)
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
POST /productos
Content-Type: application/json
{
"nombre": "Laptop Gaming",
"precio": 1500.00,
"imagenUrl": "http://ejemplo.com/laptop.jpg"
}
GET /productos
POST /usuarios
Content-Type: application/json
{
"nombre": "Juan Pérez",
"correo": "juanperez@example.com"
}
/hello para ver estado del servidorDesarrollado por Joaquín Mendiola
🌐 GitHub: joacomendiola