Skip to content

Autenticação ​

Status Atual ​

INFO

As APIs NetFind.io atualmente não requerem autenticação. Rate limiting é aplicado baseado no endereço IP.

Endpoints Públicos ​

Todos os endpoints são atualmente públicos:

EndpointAutenticação
/api/search-and-scrapeNão
/api/search-startpageNão
/v1/search/hybridParâmetro user_id

Identificação de Usuário ​

Busca Híbrida ​

O endpoint de Busca Híbrida requer um parâmetro user_id para acessar documentos específicos do usuário:

javascript
// O user_id determina quais documentos são pesquisáveis
const response = await fetch('/v1/search/hybrid', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    query: 'termo de busca',
    user_id: 'seu_user_id', // Obrigatório
    doc_ids: ['doc1', 'doc2'] // Filtro opcional
  })
});

WARNING

O user_id não é validado contra um sistema de autenticação. Garanta que você implemente seu próprio controle de acesso antes de expor este endpoint aos usuários finais.

Autenticação Futura ​

Autenticação via API key está planejada para releases futuros:

bash
# Implementação futura (ainda não disponível)
curl -H "Authorization: Bearer SUA_API_KEY" \
  "https://api.netfind.io/api/search-and-scrape?q=query"

Boas Práticas ​

Uso Server-Side ​

Para aplicações em produção, chame a API a partir do seu backend:

javascript
// server.js - Seu backend
app.get('/api/search', async (req, res) => {
  const { query } = req.query;

  // Sua própria autenticação aqui
  if (!req.user) {
    return res.status(401).json({ error: 'Não autorizado' });
  }

  // Chama a API NetFind do seu servidor
  const response = await fetch(
    `https://api.netfind.io/api/search-and-scrape?q=${encodeURIComponent(query)}`
  );

  const data = await response.json();
  res.json(data);
});

Protegendo Documentos de Usuários ​

Ao usar a Busca Híbrida, valide o acesso do usuário:

javascript
app.post('/api/hybrid-search', async (req, res) => {
  const { query, doc_ids } = req.body;

  // Verifica se o usuário possui os documentos solicitados
  const userDocs = await getUserDocuments(req.user.id);
  const validDocIds = doc_ids?.filter(id => userDocs.includes(id));

  const response = await fetch('https://api.netfind.io/v1/search/hybrid', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      query,
      user_id: req.user.id,
      doc_ids: validDocIds
    })
  });

  res.json(await response.json());
});

Recomendações de Segurança ​

  1. Nunca exponha chamadas de API diretamente aos clientes - Sempre faça proxy através do seu backend
  2. Implemente seu próprio rate limiting - Adicione proteção adicional
  3. Valide todos os inputs - Sanitize queries antes de encaminhar
  4. Registre o uso da API - Monitore padrões de abuso
  5. Use HTTPS - Toda comunicação com a API deve ser criptografada

Feito com VitePress