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:
| Endpoint | Autenticação |
|---|---|
/api/search-and-scrape | Não |
/api/search-startpage | Não |
/v1/search/hybrid | Parâ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
- Nunca exponha chamadas de API diretamente aos clientes - Sempre faça proxy através do seu backend
- Implemente seu próprio rate limiting - Adicione proteção adicional
- Valide todos os inputs - Sanitize queries antes de encaminhar
- Registre o uso da API - Monitore padrões de abuso
- Use HTTPS - Toda comunicação com a API deve ser criptografada
