Vai al contenuto principale
DiffHook/Documenti
Riferimento APIMigliori pratiche

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'usoIntervallo consigliato
Vendite flash, avvisi sui prezzi5–15 minuti
Monitoraggio della concorrenza60 minuti
Documenti normativi360 minuti (6 ore)
Bacheche di lavoro, pagine di carriera1440 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.