Como testar APIs e integrações localmente – Aprenda Golang
http.HandleFunc("/", func(rw http.ResponseWriter, _ *http.Request) {
io.WriteString(rw, "Olá Mundo!")
Feito isso, vamos executar um go run main.go e em outro terminal executar o seguinte comando:
Se você recebeu um Olá Mundo! como resposta, então está tudo certo com a API.
Para conseguir expor essa API para receber requisições externas, vamos usar um programa chamado ngrok, programa que uso há mais ou menos uns 6 anos.
Primeiro passo é criar uma conta para poder pegar um token de autenticação. Eu criei minha conta usando o login do github, mas você pode fazer como preferir.
Já logado no painel administrativo, vamos em Getting Started > Setup & Installation.
Nessa tela, faça download do ngrok para seu sistema operacional e depois faça a descompactação do arquivo zip na sua máquina. Agora, pelo terminal, vá até a pasta onde você descompactou o zip e execute o comando do item 2 dá página onde baixamos o ngrok.
Esse segundo passo é importante, pois ele vai autenticar nosso o ngrok usando o token da conta que criamos.
Com tudo configurado, vamos iniciar o ngrok com o comando ./ngrok http [PORTA], que em nosso caso será ./ngrok http 8000.
Como podemos ver no terminal, ele nos dá 2 endereços de Forwarding. Esses são os dois endereços que podemos usar para acessar nossa API de forma externa à nossa máquina.
No entanto, executando o comando somente dessa forma, o endereço que aparece ali vai mudar sempre que o comando for executado, o que pode ser um problema em alguns casos.
Para evitar esse problema, podemos executar o ngrok com o seguinte comando.
./ngrok http 8000 -subdomain=aprendagolang
Agora, sempre que o ngrok subir ele terá o mesmo endereço.
Se você fizer o CURL para o endereço que está ai no seu Forwarding, verá que a request será logada no terminal. Caso você queira mais informações sobre as requests recebidas, ou queira fazer um "replay" da request, abra seu navegador em http://127.0.0.1:4040.