Pular para o conteúdo principal

Integração com APIs

A integração com APIs é fundamental para conectar o n8n com sistemas externos e serviços. Esta seção aborda técnicas avançadas para mapear, processar e transformar respostas de API de forma eficiente.


Visão Geral

APIs (Application Programming Interfaces) permitem que o n8n se comunique com sistemas externos, bancos de dados, serviços em nuvem e outras aplicações. O mapeamento correto das respostas de API é essencial para workflows eficientes.

Tipos de APIs

  • REST APIs: Interfaces web padrão usando HTTP
  • GraphQL APIs: Consultas flexíveis e eficientes
  • SOAP APIs: Protocolo XML para serviços web
  • Webhooks: Notificações em tempo real
  • OAuth APIs: Autenticação segura

Mapeamento de Respostas

Estrutura de Resposta Típica

{
  "status": "success",
  "data": {
    "users": [
      {
        "id": 1,
        "name": "João Silva",
        "email": "joao@exemplo.com",
        "created_at": "2024-01-15T10:30:00Z"
      }
    ],
    "pagination": {
      "page": 1,
      "total_pages": 5,
      "total_items": 100
    }
  },
  "meta": {
    "timestamp": "2024-01-15T10:30:00Z",
    "version": "1.0"
  }
}

Extração de Dados

// Extrair lista de usuários
{{ $json.data.users }}

// Extrair informações de paginação
{{ $json.data.pagination }}

// Extrair metadados
{{ $json.meta }}

// Acessar propriedades aninhadas
{{ $json.data.users[0].name }}

// Filtrar dados
{{ $json.data.users.filter(user => user.email.includes('@exemplo.com')) }}

Configuração de APIs

Headers de Autenticação

// Bearer Token
{
  "Authorization": "Bearer YOUR_TOKEN_HERE"
}

// API Key
{
  "X-API-Key": "YOUR_API_KEY_HERE"
}

// Basic Auth
{
  "Authorization": "Basic " + btoa("username:password")
}

Parâmetros de Query

// Parâmetros básicos
{
  "page": 1,
  "limit": 50,
  "sort": "created_at",
  "order": "desc"
}

// Filtros avançados
{
  "status": "active",
  "created_after": "2024-01-01",
  "category": ["tech", "business"]
}

Processamento de Respostas

Validação de Resposta

// Verificar status da resposta
{{ $json.status === 'success' ? 'Sucesso' : 'Erro' }}

// Verificar códigos HTTP
{{ $json.statusCode === 200 ? 'OK' : 'Erro' }}

// Validar estrutura de dados
{{ $json.data && $json.data.users ? 'Dados válidos' : 'Estrutura inválida' }}

Transformação de Dados

// Mapear dados para formato interno
{{ $json.data.users.map(user => ({
  id: user.id,
  nome: user.name,
  email: user.email,
  dataCriacao: new Date(user.created_at).toLocaleDateString('pt-BR')
})) }}

// Adicionar campos calculados
{{ $json.data.users.map(user => ({
  ...user,
  nomeCompleto: user.first_name + ' ' + user.last_name,
  idade: calcularIdade(user.birth_date)
})) }}

Tratamento de Erros

Erros Comuns

// Erro de autenticação
if ($json.statusCode === 401) {
  return { error: 'Token inválido ou expirado' };
}

// Erro de rate limiting
if ($json.statusCode === 429) {
  return { error: 'Limite de requisições excedido' };
}

// Erro de servidor
if ($json.statusCode >= 500) {
  return { error: 'Erro interno do servidor' };
}

Retry Logic

// Implementar retry automático
const maxRetries = 3;
const retryDelay = 1000; // 1 segundo

for (let attempt = 1; attempt <= maxRetries; attempt++) {
  try {
    const response = await fetch(apiUrl, options);
    if (response.ok) {
      return await response.json();
    }
  } catch (error) {
    if (attempt === maxRetries) {
      throw new Error('Falha após todas as tentativas');
    }
    await new Promise(resolve => setTimeout(resolve, retryDelay * attempt));
  }
}

Workflows de Integração

Workflow: Sincronização de Dados

Workflow: Webhook Processing


Próximos passos

  1. Otimização de Performance - Melhore eficiência
  2. Visualização de Dados - Crie dashboards
  3. Schema Preview - Entenda estruturas de dados

Agora você domina técnicas de integração com APIs. Use essas habilidades para conectar o n8n com sistemas externos de forma eficiente!


Dica Pro

Sempre valide as respostas de API antes de processá-las para evitar erros em cascata nos seus workflows.

Importante

Implemente tratamento de erros robusto para APIs externas, pois elas podem estar indisponíveis ou retornar dados inesperados.

Recurso Adicional

Use o Schema Preview para entender a estrutura das respostas de API antes de mapeá-las em seus workflows.