GraphQL API - Quick Reference
Agranelos Inventario System
Base URL: https://agranelos-fybpb6duaadaaxfm.eastus2-01.azurewebsites.net/api/graphql
🔍 CONSULTAS BÁSICAS
Todos los productos
curl -X POST https://agranelos-fybpb6duaadaaxfm.eastus2-01.azurewebsites.net/api/graphql \
-H "Content-Type: application/json" \
-d '{"query": "{ productos { id nombre precio cantidad } }"}'
Producto por ID
curl -X POST https://agranelos-fybpb6duaadaaxfm.eastus2-01.azurewebsites.net/api/graphql \
-H "Content-Type: application/json" \
-d '{"query": "query($id: ID!) { producto(id: $id) { id nombre precio cantidad } }", "variables": {"id": "1"}}'
Todas las bodegas
curl -X POST https://agranelos-fybpb6duaadaaxfm.eastus2-01.azurewebsites.net/api/graphql \
-H "Content-Type: application/json" \
-d '{"query": "{ bodegas { id nombre ubicacion capacidad } }"}'
✏️ OPERACIONES DE ESCRITURA
Crear producto
curl -X POST https://agranelos-fybpb6duaadaaxfm.eastus2-01.azurewebsites.net/api/graphql \
-H "Content-Type: application/json" \
-d '{"query": "mutation($input: ProductoInput!) { crearProducto(input: $input) { success message producto { id nombre } } }", "variables": {"input": {"nombre": "Nuevo Producto", "descripcion": "Test", "precio": 29.99, "cantidad": 100}}}'
Actualizar producto
curl -X POST https://agranelos-fybpb6duaadaaxfm.eastus2-01.azurewebsites.net/api/graphql \
-H "Content-Type: application/json" \
-d '{"query": "mutation($input: ProductoUpdateInput!) { actualizarProducto(input: $input) { success message } }", "variables": {"input": {"id": "1", "nombre": "Producto Actualizado", "precio": 35.99}}}'
Eliminar producto
curl -X POST https://agranelos-fybpb6duaadaaxfm.eastus2-01.azurewebsites.net/api/graphql \
-H "Content-Type: application/json" \
-d '{"query": "mutation($id: ID!) { eliminarProducto(id: $id) { success message } }", "variables": {"id": "1"}}'
Crear bodega
curl -X POST https://agranelos-fybpb6duaadaaxfm.eastus2-01.azurewebsites.net/api/graphql \
-H "Content-Type: application/json" \
-d '{"query": "mutation($input: BodegaInput!) { crearBodega(input: $input) { success message bodega { id nombre } } }", "variables": {"input": {"nombre": "Nueva Bodega", "ubicacion": "Zona Norte", "capacidad": 1500}}}'
🎯 CONSULTAS ÚTILES
Health Check
curl -X POST https://agranelos-fybpb6duaadaaxfm.eastus2-01.azurewebsites.net/api/graphql \
-H "Content-Type: application/json" \
-d '{"query": "{ health }"}'
Consulta combinada
curl -X POST https://agranelos-fybpb6duaadaaxfm.eastus2-01.azurewebsites.net/api/graphql \
-H "Content-Type: application/json" \
-d '{"query": "{ productos { id nombre precio } bodegas { id nombre capacidad } }"}'
Solo nombres y precios
curl -X POST https://agranelos-fybpb6duaadaaxfm.eastus2-01.azurewebsites.net/api/graphql \
-H "Content-Type: application/json" \
-d '{"query": "{ productos { nombre precio } }"}'
📋 CAMPOS DISPONIBLES
Producto: id
, nombre
, descripcion
, precio
, cantidad
, fechaCreacion
, fechaActualizacion
Bodega: id
, nombre
, ubicacion
, capacidad
, fechaCreacion
, fechaActualizacion
⚠️ NOTAS IMPORTANTES
- Campo cantidad: Usa
cantidad
en GraphQL (mapea acantidadEnStock
internamente) - IDs: Siempre como strings en GraphQL:
"1"
,"2"
, etc. - Campos requeridos: Marcados con
!
en el esquema - Fechas: Formato ISO 8601:
"2025-09-14T10:30:00"
🔗 REST Endpoints (alternativa)
GET /api/productos
- Listar productosGET /api/productos/{id}
- Obtener productoPOST /api/productos
- Crear productoPUT /api/productos/{id}
- Actualizar productoDELETE /api/productos/{id}
- Eliminar productoGET /api/bodegas
- Listar bodegasPOST /api/bodegas
- Crear bodegaPUT /api/bodegas/{id}
- Actualizar bodegaDELETE /api/bodegas/{id}
- Eliminar bodega