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