Migliori pratiche
Linee guida per creare integrazioni affidabili con DiffHook.
Utilizza i selettori CSS per ridurre il rumore
Le pagine cambiano costantemente: aggiornamento dei banner dei cookie, aggiornamento degli annunci, spunta dei timestamp. Adatta i tuoi monitor ai contenuti che ti interessano davvero:
{
"css_selector": "#pricing-table"
}
Ciò riduce i falsi positivi e rende le differenze più significative.
Utilizza il rendering JS solo quando necessario
Il rendering del browser headless è più lento e richiede più risorse. Abilitalo solo quando la pagina di destinazione richiede realmente JavaScript per visualizzare contenuti significativi.
La maggior parte dei feed di notizie, dei siti di documentazione e delle pagine dei prezzi sono sottoposti a rendering del server e non ne hanno bisogno.
Rispondi rapidamente ai webhook
L'endpoint dovrebbe restituire 200 OK entro 10 secondi. I timeout e le risposte non 2xx attivano tentativi automatici con backoff esponenziale in minuti (vedere Ricezione di webhook).
Elabora i payload in modo asincrono: inviali a una coda, salvali in un database e restituisci immediatamente 200.
Idempotenza
I webhook possono essere consegnati più di una volta in rari scenari di errore. Utilizzare la combinazione monitor_id + triggered_at come chiave di deduplicazione:
const eventKey = `${body.monitor_id}:${body.triggered_at}`
if (await redis.get(eventKey)) return // Already processed
await redis.set(eventKey, '1', 'EX', 86400)
Scegli l'intervallo giusto
Una buona regola pratica:
| Caso d'uso | Intervallo consigliato |
|---|---|
| Vendite flash, avvisi sui prezzi | 5–15 minuti |
| Monitoraggio della concorrenza | 60 minuti |
| Documenti normativi | 360 minuti (6 ore) |
| Bacheche di lavoro, pagine di carriera | 1440 min (giornaliero) |
Verifica le firme
Verificare sempre l'intestazione X-Signature prima di elaborare i payload del webhook. Questo protegge dalle richieste contraffatte. Consulta la guida Verifica le firme per esempi di implementazione.