Volver a Documentación

Inicio rápido — Node.js

Integra Rayuela en tu aplicación Node.js y obtén tu primera recomendación en menos de 5 minutos.

Requisitos previos

  • Node.js 14 o superior
  • npm o yarn
  • Una cuenta en Rayuela (regístrate en rayuela.ai)
  • Tu API Key (disponible en el dashboard después del registro)
Paso 1: Instalación
El SDK de Node.js todavía no está publicado en npm. Mientras tanto, integrá la API directamente vía HTTP (ver quickstart cURL).
# SDK de Node.js — próximamente en npm (aún sin publicar)
# Alternativa disponible hoy: llamadas HTTP directas a la API
# Ver /docs/quickstart/curl

Los ejemplos de esta página usan fetch nativo (Node.js 18+); el SDK de Node.js se publicará próximamente en npm.

Paso 2: Configuración inicial
Crea un cliente Node.js para interactuar con la API de Rayuela.
// Node.js 18+ (fetch nativo). El SDK de Node.js aún no está publicado.
const RAYUELA_BASE = process.env.RAYUELA_API_URL || 'https://api.rayuela.ai/api/v1';

async function rayuela(path, body) {
  const res = await fetch(`${RAYUELA_BASE}${path}`, {
    method: 'POST',
    headers: {
      'X-API-Key': process.env.RAYUELA_API_KEY,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(body)
  });
  if (!res.ok) throw new Error(`Rayuela API error: ${res.status}`);
  return res.json();
}
Paso 3: Verificar conexión
Prueba que tu API Key funciona correctamente.
// Probar conexión contra el health check autenticado
async function main() {
  try {
    const res = await fetch(`${RAYUELA_BASE}/health/auth`, {
      headers: { 'X-API-Key': process.env.RAYUELA_API_KEY }
    });

    if (res.ok) {
      console.log('OK: conexión exitosa');
    } else {
      console.log('Error: verifica tu API Key.');
    }
  } catch (error) {
    console.log('Error de conexión:', error.message);
  }
}

main();
Paso 4: Obtener recomendaciones
Solicita recomendaciones personalizadas para un usuario.
// Obtener recomendaciones personalizadas
async function getRecommendations(userId, options = {}) {
  try {
    const response = await rayuela('/recommendations/personalized/query', {
      external_user_id: userId,
      limit: options.limit || 5,
      strategy: options.strategy || 'hybrid',
      recommendation_goal: 'user_engagement',
      include_explanation: false,
      filters: options.filters || {
        logic: 'and',
        filters: []
      }
    });
    return response;
  } catch (error) {
    console.error('Error obteniendo recomendaciones:', error.message);
    throw error;
  }
}
// Ejemplo de uso
const recommendations = await getRecommendations('user_123', {
  limit: 5,
  filters: {
    logic: 'and',
    filters: [{ field: 'category', op: 'eq', value: 'electronics' }]
  }
});
console.log('Recomendaciones:', recommendations.items);
Listo — siguientes pasos

Ya tenés una integración HTTP básica para Node.js. Ahora podés: