Observoo SDK
SDK oficial do Observoo para envio de logs em aplicações Node.js.
Instalação
npm install observoo
Configuração
import { Observoo } from 'observoo';
const observoo = new Observoo({
projectId: 'seu-project-id',
apiKey: 'seu-api-key',
timeout: 10000,
retries: 3,
retryDelay: 1000,
});
Uso Básico
s de conversão
const result = await observoo.purchase('order-123', 99.9, 'BRL', {
productId: 'prod-456',
category: 'electronics',
});
const result = await observoo.signup('email', {
plan: 'premium',
});
const result = await observoo.signin('google', {
userId: 'user-123',
});
Enviar eventos de erro
await observoo.error('API timeout', 'Error: Request timeout at fetch...', {
type: 'ERROR',
...
});
Configuração Avançada
Definir opções padrão
observoo.setDefaultOptions({
url: 'https://meusite.com',
userAgent: 'MyApp/1.0',
visitorId: 'visitor-123',
});
Exemplos Práticos
Next.js API Route
import { NextApiRequest, NextApiResponse } from 'next';
import { Observoo } from 'observoo';
const observoo = new Observoo({
projectId: process.env.OBSERVOO_PROJECT_ID!,
apiKey: process.env.OBSERVOO_API_KEY,
});
export default async function handler(
req: NextApiRequest,
res: NextApiResponse
) {
if (req.method !== 'POST') {
return res.status(405).json({ error: 'Method not allowed' });
}
const { event, data, url, referrer } = req.body;
try {
const result = await observoo.serverAction('create_checkout_session', {
type: 'SERVER_ACTION',
method: 'CREATE',
statusText: 'success',
message: 'success',
data: {
email: email,
userAgent: req.headers['user-agent'],
},
});
res.status(200).json(result);
} catch (error) {
res.status(500).json({ error: 'Internal server error' });
}
}
Error Tracking
app.use(
(
error: Error,
req: express.Request,
res: express.Response,
next: express.NextFunction
) => {
observoo
.error(error.message, error.stack, {
type: 'ERROR',
method: 'CREATE',
statusText: 'error',
path: req.url,
data: {
userAgent: req.get('user-agent'),
},
})
.catch(console.error);
next(error);
}
);
Tipos TypeScript
O SDK inclui tipos TypeScript completos:
import {
ObservooConfig,
ObservooOptions,
TrackEvent,
EventData,
TrackResponse,
} from 'observoo';
const config: ObservooConfig = {
projectId: 'seu-project-id',
apiKey: 'seu-api-key',
};
const options: ObservooOptions = {
url: 'https://meusite.com',
visitorId: 'visitor-123',
};
Tratamento de Erros
O SDK inclui retry automático e tratamento de erros robusto:
const result = await observoo.track('custom');
if (!result.success) {
console.error('Erro ao enviar evento:', result.error);
console.error('Detalhes:', result.details);
} else {
console.log(
`Evento enviado com sucesso. ${result.count} eventos processados.`
);
}
Configuração de Ambiente
OBSERVOO_PROJECT_ID=seu-project-id
OBSERVOO_API_KEY=api_key
Licença
MIT