Criando API em GoLang

Nesse artigo, veja como criar uma API com GoLang. Para você ter um overview, iremos criar uma API para cadastro de pessoas. Não vou abordar a instalação do Go. Caso você ainda não tenha ele instalado, você pode seguir os passos desse artigo Primeiros passos com GoLang.
Antes de começarmos a desenvolver, nós precisamos criar um novo diretório dentro do nosso workspace. Para esse artigo, iremos utilizar um computador com Windows 10, o caminho do meu workspace ficou: C:\go\src\github.com\programadrirano\person\.
O nosso primeiro passo será a criação de um novo arquivo chamado main.go, esse será o nosso arquivo root, em seguida precisaremos de um editor de textos. Para esse artigo iremos utilizar o Visual Studio Code. Com o arquivo aberto no seu VS Code, atualize ele com o código abaixo.
Vamos entender passo a passo o nosso código:
Linha 3 a 11: Estamos importando os pacotes necessários para nossa aplicação.
Nas linha 13 a 22 nós temos:
- 14: estamos inicializando a nossa rota passando o valor true para ScrictSlash, a grosso modo ele nos permitir trabalhar com as nossas rotas da seguinte forma: /rota e dessa /rota/, para mais detalhes sobre ele segue link da sua documentação.
- 16: estamos criando a nossa rota GET, no primeiro parâmetro nós passamos a rota, no segundo o nome do método que irá responder a nossa chamada e no final o Verbo HTTP que iremos utilizar.
- 17: a nossa rota para criação, seguindo os passos da linha 16.
- 18: variável com a porta que iremos utilizar para nossa API.
- 19: estamos printando na nossa console a porta que estamos utilizando.
- 20: estamos passando a porta e as nossas rotas para o listen do pacote HTTP.
Nas linhas 24 a 32, nós estamos criando um modulo chamado Person e inicializando ele com dois valores.
Nas linhas 34 a 37, nós criamos o nosso método getAll com dois parâmetros Response e Request e estamos retornando os valores do array que criamos a cima.
Por fim, nas linhas 39 a 71 temos:
- 40 e 41: estamos configurando o nosso header setando o seu Content-type.
- 42: estamos criando uma variável com o valor da nossa model Person.
- 44: estamos recebendo os valores do nosso request e passando paara duas variáveis body e err.
- 46 a 61: nos criamos algumas validações como: se o erro é diferente de nil, se o arquivo veio vazio, e retornamos para o usuário.
- 63: estamos fazendo um parse para o nosso Objeto.
- 65: como não estamos trabalhando com banco de dados, nós adicionamos o valor no nosso array.
- 68 a 72: finalizamos o nosso método retornando o status 201 de criado e o objeto que o nosso usuário envio.
Agora para que possamos testar, execute o comando go run .\main.go no seu terminal, ele irá exibir uma mensagem com a porta na sua console. Podemos ver essa execução na imagem abaixo:

Nosso próximo passo será testarmos as nossas rotas. Para isso, abra o endereço no seu navegador: http://localhost:3000/ e caso tudo esteja OK você irá receber o objeto abaixo:
[ { Name: "Heisenberg" }, { Name: "Pinkman" } ]
Agora para que possamos testar o cadastro, nós iremos utilizar o Postman, ferramenta gratuita que nós auxilia nos testes a requisições HTTP. Com ele aberto preencha os campos conforme esta na imagem abaixo e clique em enviar.

Por fim, volte no seu método GET e perceba que nós temos um novo registro no nosso retorno.
Caso tenha interesse em baixar a versão final do código desse artigo, segue o seu link no GitHub.