API RESTful desarrollada en Java con Spring Boot para la gestión de productos de un e‑commerce.
Incluye operaciones CRUD, búsqueda filtrada, y actualización parcial mediante PATCH.
- Java 17+
- Spring Boot
- Spring Data JPA
- Maven
- Base de datos configurable (MySQL, H2, etc.)
La configuración de la base de datos se realiza en
src/main/resources/application.properties.
Entidad principal: Producto
| Campo | Tipo | Descripción |
|---|---|---|
id |
Long | Identificador autogenerado |
nombre |
String | Nombre del producto |
precio |
double | Precio del producto |
cantidad |
int | Stock disponible |
- Crear productos
- Listar todos los productos
- Filtrar por:
nombre(coincidencia parcial)precio(menor o igual)
- Editar un producto completo (
PUT) - Actualizar parcialmente (
PATCH) - Eliminar productos por ID
Crea un nuevo producto.
Body ejemplo:
{
"nombre": "Lapiz",
"precio": 10.5,
"cantidad": 20
}Lista todos los productos o aplica filtros opcionales.
Parámetros opcionales:
nombre→ coincidencia parcialprecio→ precio máximo
Ejemplos:
/products/products?nombre=Lap/products?precio=50/products?nombre=Lap&precio=50
Obtiene un producto por su ID.
Ejemplo:
GET /products/1
Reemplaza el producto completo.
Body ejemplo:
{
"id": 1,
"nombre": "Lapiz Pro",
"precio": 12.0,
"cantidad": 15
}Actualización parcial del producto.
Body ejemplo:
{
"precio": 8.5
}Elimina un producto por su ID.
Ejemplo:
DELETE /products/1
URL base:
http://localhost:8080/products
POST /products
Content-Type: application/json
{
"nombre": "Lapiz",
"precio": 10.5,
"cantidad": 20
}GET /products
GET /products?nombre=Lap
GET /products?precio=50
GET /products?nombre=Lap&precio=50
PUT /products/1
{
"id": 1,
"nombre": "Lapiz Pro",
"precio": 12.0,
"cantidad": 15
}PATCH /products/1
{
"precio": 8.5
}DELETE /products/1
mvn clean package
java -jar target/<nombre-del-jar>.jarmvn spring-boot:run- Configurar la base de datos en
application.properties(URL, usuario, contraseña, dialecto). - Validaciones mínimas implementadas (ej.: nombre no nulo/no vacío).
- Búsquedas implementadas con métodos de Spring Data JPA:
findByNombreContainingfindByPrecioLessThanEqualfindByNombreContainingAndPrecioLessThanEqual