Módulo 5 — Automação e agendamento 🟢

Objectivo: fazer o sistema trabalhar sozinho — reagir a eventos e correr tarefas à hora certa. O momento aha: o software passa a fazer coisas sem ninguém clicar. Resultado: um webhook testado localmente + uma tarefa agendada que dispara um endpoint real.


1. Webhooks — sistemas a avisarem-se

Um webhook é um aviso automático: quando algo acontece num sistema (ex.: “pagamento concluído”), ele faz um pedido HTTP a um endereço teu, com os dados.

Diferença para uma API normal: na API tu perguntas; no webhook ele avisa-te.

2. ngrok — testar webhooks na tua máquina

O teu localhost não é acessível pela internet. O ngrok abre um túnel público temporário:

ngrok http 3001
# → https://abcd-1234.ngrok-free.app  → reencaminha para localhost:3001

Usas esse URL como destino do webhook enquanto desenvolves.

3. Segurança: confirmar quem avisa

Nunca confies cegamente num webhook recebido:

  • Verifica a assinatura (ex.: HMAC) ou
  • Confirma na origem (“este pagamento existe mesmo?”) antes de processar.

4. cronjob.org — tarefas agendadas

Para correr algo periodicamente (ex.: “emitir faturas todos os dias às 7h”), o cronjob.org chama um endpoint teu na hora marcada.

Job: GET https://api.exemplo.com/cron/faturas-diarias
Agenda: todos os dias às 07:00

🔴 Fora do VSCode

Criar a conta e (opcionalmente) ver o histórico de execuções no painel do cronjob.org.


✅ Exercícios

  1. Túnel — corre ngrok http 3000 e abre o URL público no telemóvel.
  2. Endpoint — cria uma rota que recebe um POST e regista o que chega (console.log).
  3. Agenda — define (no papel) um job cronjob.org que chama esse endpoint de hora a hora.

Resultado esperado: um pedido externo (via ngrok) a chegar ao teu código local.


⚠️ Erros comuns

  • Confiar num webhook sem verificar a assinatura/origem — porta aberta a fraude.
  • Deixar o ngrok como URL de produção — é só para dev; em produção usa o domínio real.
  • Cron sem registo — não sabes se correu nem se falhou.
  • Tarefa pesada no pedido em vez de agendada — o utilizador espera demais.

📋 Checklist do módulo

  • Webhook recebido e validado (assinatura/origem)
  • Túnel só para dev; produção usa o domínio real
  • Job agendado a chamar um endpoint real
  • Execuções registadas (logs)
🧠 Quiz — testa o que aprendeste

1 Um webhook serve para…

2 Para testar webhooks na tua máquina usas…

Material de formação · Desenvolvido por DCSC Tecnologias