Seis motivos incríveis para usar o ngrok ao testar webhooks

September 10, 2015
Escrito por
Phil Nash
Twilion

Seis motivos incríveis para usar o ngrok ao testar webhooks

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:

  1. Baixe o pacote para seu sistema
  2. Descompacte o pacote
  3. 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:

$ ./ngrok http 3000 

executando o ngrok pela primeira vez.

 

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:

$ ngrok http 3000

rodando o ngrok com o protocolo http na porta 3000

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.

visualizando o dashboard do ngrok

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.

fazendo o replay de uma chamada recebida.

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!

$ ngrok http -auth "user:password" 3000

Bum! Agora, seu túnel está protegido com autenticação HTTP. Ninguém está espionando seu trabalho!

incluindo autenticação no tunel.

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:

$ ngrok http -subdomain=thisisreallycool 3000

Dê uma olhada no dashboard do ngrok e se prepare, porque agora você está encapsulando no domínio http://thisisreallycool.ngrok.io.

utilizando um subdomínio personalizado no ngrok.

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):

tunnels:
  cool:
    proto: http
    addr: 3000
    subdomain: thisisreallycool

Agora, você pode executar:

$ ngrok start cool

e o túnel será iniciado com as opções fornecidas no arquivo yml.

utilizando um arquivo de parâmetros para inicializar o ngrok.

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!

animação do Pikachu sendo abduzido.

Este artigo foi traduzido do original "6 awesome reasons to use ngrok when testing webhooks". Enquanto melhoramos nossos processos de tradução, adoraríamos receber seus comentários em help@twilio.com - contribuições valiosas podem render brindes da Twilio.