Seis motivos incríveis para usar o ngrok ao testar webhooks
Tempo de leitura: 3 minutos

Os webhooks são ótimos! Eles são perfeitos para serviços de API, como a plataforma Twilio, notificarem os aplicativos sobre eventos, como mensagens de texto ou chamadas recebidas. O único problema é que, quando você está desenvolvendo um aplicativo que consome webhooks, precisa de um URL publicamente acessível com o qual configurar o serviço de webhook. Normalmente, você desenvolveria em localhost e ninguém mais teria acesso ao aplicativo; mas como testar os webhooks?
Bem, é aí que entra o ngrok. O ngrok é uma ferramenta gratuita que permite criar um túnel entre um URL público e o aplicativo executado localmente. Esta é a minha lista das seis coisas que eu mais gosto no ngrok:
1. É muito fácil de instalar e usar
O ngrok vem integrado ao Go, por isso está empacotado como binários para cada plataforma principal. Faça o seguinte para instalar o ngrok:
- Baixe o pacote para seu sistema
- Descompacte o pacote
- Não existe a etapa 3!
Bem, a etapa 3 não existe se você tem um Mac ou Linux; se você usa o Windows, talvez tenha um pouco mais de trabalho. Felizmente, o Devin tem tudo o que você precisa saber neste post sobre como configurar o ngrok no Windows.
Depois de instalar o ngrok, é muito fácil usá-lo para criar um túnel até um aplicativo em execução, digamos, na porta 3000:

Dica bônus de instalação!
Depois de descompactar o executável do ngrok, coloque-o em uma pasta no seu $PATH , assim você poderá executar o ngrok de qualquer local na linha de comando, basta digitar o seguinte:

Se você quiser ler um artigo mais detalhado sobre como conectar o ngrok aos apps da Twilio, consulte o post do Kevin sobre como começar a usar o ngrok. Mas preste atenção, porque os comandos mudaram com o lançamento do ngrok 2. Você pode seguir o post, mas substitua a sintaxe acima para tudo funcionar bem.
2. Ele tem um dashboard
Quando você inicia o ngrok, ele mostra o URL de túnel e um URL local, http://127.0.0.1:4040. Abra essa URL e aprecie a maravilha do dashboard bem diante dos seus olhos.
O dashboard mostra o status do túnel, as solicitações que você fez por meio dele e as respostas recebidas do aplicativo. Ele é excelente para depurar erros de acionamento de endpoints webhook.

3. Você pode repetir as solicitações
Dê mais uma olhada nesse dashboard. Você não só pode inspecionar as solicitações recebidas pelo túnel do ngrok, como também pode repeti-las.
Agora, quando o endpoint de SMS se comporta de forma incorreta, em vez de enviar outras mensagens até tudo se acertar, você só precisa repetir a solicitação recebida no dashboard.

4. Você pode proteger os túneis
Preocupado que alguém esteja de olho no app supersecreto que você está desenvolvendo, mas ainda precisa abrir um túnel para verificar algo? Veja isto e pare de se preocupar agora mesmo!
Bum! Agora, seu túnel está protegido com autenticação HTTP. Ninguém está espionando seu trabalho!

Dicas profissionais!
Chegamos à seção de dicas profissionais. E por que essas dicas são "profissionais"? Porque você precisa de uma conta profissional do ngrok para usá-las! O uso do ngrok é gratuito, mas, para garantir que isso continue sendo viável, alguns recursos são exclusivos para clientes pagantes.
Confira os planos disponíveis e veja meu recurso favorito abaixo.
5. [Dica profissional] Você pode usar subdomínios personalizados
Obter um novo subdomínio aleatório sempre que você aciona o ngrok pode ser frustrante. Ter de reconfigurar um serviço de webhook sempre que você quiser testar é uma dor de cabeça.
Como cliente pagante do ngrok, você pode usar um subdomínio personalizado, basta especificá-lo no comando. Se você tem uma conta paga do ngrok, tente fazer isto:
Dê uma olhada no dashboard do ngrok e se prepare, porque agora você está encapsulando no domínio http://thisisreallycool.ngrok.io.

6. [Dica profissional] Você pode configurar tudo isso para que aconteça automaticamente
Agora que você conheceu e se encantou pelo subdomínio do ngrok, talvez esteja olhando para este comando e pensando: "Sempre preciso digitar um monte de coisas e lembrar dos argumentos!"
Não se preocupe, o próximo recurso é ideal para você.
Na verdade, o ngrok pode ler várias coisas úteis em um arquivo de configuração. Se você criou uma conta paga e adicionou o auth token (token de autenticação), terá o arquivo de configuração .ngrok2/ngrok.yml no diretório $HOME.
Agora, podemos recriar a configuração do subdomínio em um túnel nomeado, abrir ~/.ngrok2/ngrok.yml e colar o seguinte no authtoken (token de autenticação):
Agora, você pode executar:
e o túnel será iniciado com as opções fornecidas no arquivo yml.

O ngrok é o melhor!
Agora que você conhece a força do ngrok, os testes de webhooks nunca mais serão os mesmos. Para saber mais sobre o ngrok, você pode encontrar mais recursos na documentação do ngrok. Assista a este vídeo do Alan Shreve, criador do ngrok, falando sobre como o ngrok foi desenvolvido, na Signal Conference da Twilio de 2015.
Se tiver outras dicas do ngrok, adoraria que você as compartilhasse comigo pelo @luisleao. Até mais!

Publicações relacionadas
Recursos relacionados
Twilio Docs
De APIs a SDKs e aplicativos de amostra
Documentação de referência de API, SDKs, bibliotecas auxiliares, guias de início rápido e tutoriais para sua linguagem e plataforma.
Centro de Recursos
Os mais recentes e-books, relatórios do setor e webinars
Aprenda com especialistas em engajamento do cliente para melhorar sua própria comunicação.
Ahoy
Centro da comunidade de desenvolvedores da Twilio
Melhores práticas, exemplos de código e inspiração para criar comunicações e experiências de engajamento digital.