Sistema de temperatura por CEP by: Matheus Lopes.
Desafio proposto no módulo de laboratório do curso de pós graduação Pós Go Expert da Fullcycle
Como rodar a imagem docker • Consultando a API • Acessar pelo cloud run • Rode os testes •
Para clonar essa applicação você precisará ter instalado o git e o golang em sua máquina. Insira os seguintes commandos em sua CLI para iniciar e rodar a instancia docker:
# Clone este repositório
$ git clone https://github.com/Nimbo1999/temperature-challenge.git
# Navegue no repositório
$ cd temperature-challenge
# Adicione a sua Weather API Key na variável de ambiente subistituindo a API_KEY pela sua KEY.
$ echo "$(cat .env.example)API_KEY" > .env
# Inicie o projeto com o Makefile
$ make start-build
# Ou inicie o docker container que possui as duas aplicações e o zipkin.
$ docker compose up -d --build
# Navegue na pasta /api para executar uma requisição HTTP ou realize um POST para o serviço de cep que ficará disponível na porta :8080 com o cep no payload i.e.: { "cep": "01001-000" }
Assim que o projeto estiver rodando com todos os container docker, você já pode interagir com a applicação por meio de uma requisição http POST. Esse end-point espera receber um CEP no body e retorna a temperatura de sua cidade em Graus Celsius, Fahrenheit e Kelvin. Veja o example logo abaixo:
$ curl -X POST \
-H "Content-Type: application/json" \
-d '{"cep":"01001000"}' \
http://localhost:8080
Ou se preferir, caso tenha instalado a extensão REST Client, abra a pasta /api
e fique avontade para alterar o cep e executar a requisição.
Assim que a primeira requisição for feita, acesse o painel do zipkin para consultar as métricas disponíveis em http://localhost:9411/
Deprecated Cloud run foi depreciado e não pode ser mais usado já que não faz mais parte desse desafio.
Essa aplicação possui um deploy ativo feito pelo Cloud Run. Interaja com essa aplicação em produção a partir de sua CLI com o seguinte comando:
Informação: Note que o valor
01001000
representa o CEP que deseja consultar a temperatura, podendo ser alterado por um outro valor a qualquer momento.
$ curl https://temperature-challenge-u6rku7jkaq-uc.a.run.app/01001000
Foi utilizado a biblioteca stretchr/testify
para auxiliar com os testes da applicação. Execute o seguinte comando em sua CLI para rodar os testes em sua máquina.
$ go test ./...