Fazendo requisições HTTP

É muito comum que um programa precise se comunicar com outro, seja para uma integração com outros sistemas ou microsserviços internos.

Embora em alguns casos essa comunicação possa ser feita com gRPC, o mais comum é que elas sejam feita através de uma API (Application Programming Interface) REST.

Nesse post vamos ver como fazer requisições (GET, POST e etc..) e tratar sua resposta.

GET

Para começar, vamos importar 3 packages.

  • io/ioutil para fazer leitura da resposta;
  • log para logar os erros;
  • net/http para executar a requisição.
Leia mais »

Tudo o que você precisa saber sobre Go 1.18

Já com sua primeira Release Candidate nas ruas, a versão mais aguardada dos últimos tempos está cada vez mais próxima de ser lançada.

Nesse post vou abordar as principais mudanças que essa versão irá trazer.

Any

Na nova versão da linguagem, foi adicionado o novo tipo de dado, o any. Esse tipo nada mais é do que uma alias para interface{}.

Isso não impede ou quebra nenhum código que utilizar interface{}, porém é recomendado mudar para any por questões de leitura.

Se você achar estranho, não se esqueça que o tipo byte é só um alias para uint8.

Leia mais »

Implementando integração com Google reCAPTCHA

Para proteger os formulários públicos de uma aplicação de serem bombardeados com spam, normalmente colocamos um recaptcha.

Primeiramente precisamos ir até a página https://www.google.com/recaptcha/admin/create para criar as chaves de segurança.

Preencha o formulário com os dados solicitados e clique em submit. Sobre o tipo de reCAPTCHA, a diferença entre a V2 e V3 é que a V3 apresenta um desafio, enquanto a V2 é aquela que só verifica se não é uma pessoa.

Na próxima página, serão exibidas duas chaves de segurança. A primeira será inserida no frontend e a segunda no backend.

Leia mais »

Escrevendo logs em formato JSON com zerolog

Algum tempo atrás fizemos um post falando sobre como escrever logs em arquivos. No post em questão, logamos algumas mensagens de forma bem simples. Normalmente esses logs em texto puro são um pouco complicados para filtrar mensagens, já que é preciso muito regex.

Nesse post vamos abordar os logs de uma forma diferente, pois vamos escreve-los em formato JSON.

Para nos auxiliar nessa tarefa, vamos utilizar um package chamado zerolog. Esse package foi criado pelo Olivier Poitrey, atual diretor de engenharia do Netflix.

Gosto muito desse package pois ele é fácil de usar e tem uma performance muito boa.

Sem mais enrolação, vamos instalar o package e começar a brincar com ele.

$ go get -u github.com/rs/zerolog/log
Leia mais »

Como testar APIs e integrações localmente

Muitas vezes quando estamos desenvolvendo uma nova aplicação ou integrando uma aplicação existente à um outro sistema, precisamos testar um endpoint nosso recebendo uma requisição externa.

A forma mais comum para testar esse endpoint é subindo o sistema para um ambiente de desenvolvimento. No entanto, subir a aplicação para um servidor a cada mudança, além de dar muito trabalho, rouba muito tempo do nosso dia de trabalho.

Por isso, no post de hoje vou mostrar como podemos testar chamadas externas à uma API que está rodando localmente.

Primeiramente vamos criar um arquivo main.go com uma API simples que retorna um “Olá Mundo!”.

Leia mais »