Conectores REST
Para cuando tienes un backend con API propia. Dos modelos opuestos:
- REST pull — Mibizum llama a tu API por cron y tú respondes con tus datos.
- REST push — tu backend nos llama a nosotros cuando algo cambia (tiempo real).
REST pull
Mibizum hace GET a tu endpoint, pagina si hace falta y mapea cada item.
Configuración
| Campo | Obligatorio | Descripción |
|---|---|---|
endpoint | Sí | URL de tu API que devuelve JSON. |
auth | No | { "type": "bearer", "token": "…" } o { "type": "header", "name": "X-API-Key", "value": "…" }. |
paginated | No | page (por defecto), cursor o none. |
pageParam / limitParam | No | Nombres de los parámetros de paginación (por defecto page / limit). |
pageSize | No | Tamaño de página (por defecto 100, máximo 1000). |
dataPath | No | Ruta con puntos hasta el array de items en la respuesta (p. ej. data.items). Si lo omites, probamos items/data/results o la raíz. |
cursorPath / cursorParam | No | Ruta al cursor en la respuesta y nombre del parámetro, si paginated: "cursor". |
mapping | No | Mapeo campo → ruta del item (admite puntos: attrs.0.sku). Sin mapping, asumimos que ya devuelves el documento normalizado. |
{
"endpoint": "https://api.tu-tienda.com/v1/productos",
"auth": { "type": "bearer", "token": "tok_…" },
"paginated": "page",
"pageSize": 200,
"dataPath": "data.items",
"mapping": { "id": "sku", "title": "name", "price": "sale_price", "image": "img.0.url" }
}Paginamos como máximo 50 páginas por sincronización (cortafuegos contra bucles). Por defecto se re-sincroniza cada 6 horas.
REST push
Tu backend (o un módulo nativo) nos envía los documentos cuando cambian. Es el modelo en tiempo real y el que usan los módulos nativos como Magento.
POST /api/v1/index— publica uno o varios documentos.DELETE /api/v1/index/:id— elimina un documento (idempotente).
Autenticación con tu clave privada (la de escritura e indexación, scope indexer) en la cabecera Authorization: Bearer …. Es un secreto de servidor: mantenla solo en tu backend y regenérala si se expone. Los documentos siguen el shape normalizado (id, title, url y los campos por tipo). Ver la referencia de la API para el detalle de payload, límites y errores.
curl -X POST https://api.mibizum.io/api/v1/index \
-H "Authorization: Bearer mb_ik_live_…" \
-H "Content-Type: application/json" \
-d '{
"source": "tu-catalogo",
"documents": [
{ "id": "A1", "docType": "product", "title": "Mesa de roble",
"url": "https://tu-tienda.com/p/a1", "price": 149.0, "stock": 7 }
]
}'Push vs pull. Si puedes empujar, el push da frescura inmediata sin esperar al cron. Si no quieres tocar tu backend, el pull (o un feed) es más sencillo de mantener.