You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ecommerce API - Spring Boot WebFlux + R2DBC + GraphQL
Requisitos
JDK 17+
Maven 3.9+
MySQL 8+ (o Docker)
Arranque rápido
# 1. Base de datos (opcional, si no tienes MySQL local)
docker run -d --name mysql \
-e MYSQL_ROOT_PASSWORD=root \
-e MYSQL_DATABASE=ecommerce_db \
-p 3306:3306 mysql:8
# 2. Configura credenciales en src/main/resources/application.yml si es necesario# 3. Compilación y ejecución
mvn clean package
mvn spring-boot:run # o java -jar target/*.jar# 4. Pruebas
mvn test
Endpoints REST principales
Método
Path
Descripción
GET
/api/v1/products
Listar productos (paginado, filtro)
GET
/api/v1/products/top-selling
Top productos más vendidos
GET
/api/v1/products/{id}
Obtener producto por ID
POST
/api/v1/products
Crear producto
PATCH
/api/v1/products/{id}
Actualizar parcialmente producto
DELETE
/api/v1/products/{id}
Eliminar producto
POST
/api/v1/products/bulk
Carga masiva de productos
GET
/api/v1/products/stream
Streaming reactivo de productos (SSE, soporta backpressure)
GET
/api/v1/products/search
Búsqueda avanzada de productos con filtros y paginación
No hay interfaz web integrada (como GraphiQL o Playground). Usa herramientas externas como Altair, Insomnia, Postman o la extensión GraphQL de VS Code para probar queries.
Ejemplo de query soportada:
query {
products {
idnamepriceavailable
}
}
Ejemplo de request con curl:
curl -X POST http://localhost:8080/graphql \
-H "Content-Type: application/json" \
-d '{ "query": "{ products { id name price available } }" }'