aleroxac / goexpert-weather-api

Projeto do Laboratório "Deploy com Cloud Run" do treinamento GoExpert(FullCycle).

Home Page:https://github.com/aleroxac/goexpert-weather-api

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

goexpert-weather-api

Projeto do Laboratório "Deploy com Cloud Run" do treinamento GoExpert(FullCycle).

O desafio

Desenvolver um sistema em Go que receba um CEP, identifica a cidade e retorna o clima atual (temperatura em graus celsius, fahrenheit e kelvin). Esse sistema deverá ser publicado no Google Cloud Run.

Como rodar o projeto: make

# build the container image
make build

# push the container image and deploy to GCP Cloud Run
make deploy

# run locally
make run

Como rodar o projeto: manual

## 1. Clone o repo

## 2. Crie o .env
cp .env.example .env

## 3. Coloque sua api-key como valor na variável OPEN_WEATHERMAP_API_KEY no .env

## 4. Baixe compose, se estiver up
docker-compose down

## 5. Remover a imagem antiga, se existir
docker image rm -f gcr.io/aleroxac/goexpert-weather-api:v1

## 6. Suba o compose 
docker-compose up -d

## 7. Faça as chamadas
## retorno 200
echo -n "422: "; curl -s "http://localhost:8080/cep/1234567"
echo -n "404: "; curl -s "http://localhost:8080/cep/12345678"
echo -n "200: "; curl -s "http://localhost:8080/cep/13330250"

Funcionalidades da Linguagem Utilizadas

  • context
  • net/http
  • encoding/json
  • testing
  • testify

Requisitos: sistema

  • O sistema deve receber um CEP válido de 8 digitos
  • O sistema deve realizar a pesquisa do CEP e encontrar o nome da localização, a partir disso, deverá retornar as temperaturas e formata-lás em: Celsius, Fahrenheit, Kelvin.
  • O sistema deve responder adequadamente nos seguintes cenários:
    • Em caso de sucesso:
      • Código HTTP: 200
      • Response Body: { "temp_C": 28.5, "temp_F": 28.5, "temp_K": 28.5 }
    • Em caso de falha, caso o CEP não seja válido (com formato correto):
      • Código HTTP: 422
      • Mensagem: invalid zipcode
    • ​​​Em caso de falha, caso o CEP não seja encontrado:
      • Código HTTP: 404
      • Mensagem: can not find zipcode
  • Deverá ser realizado o deploy no Google Cloud Run.

Requisitos: entrega

  • O código-fonte completo da implementação.
  • Testes automatizados demonstrando o funcionamento.
  • Utilize docker e docker-compose para que possamos realizar os testes de sua aplicação.
  • Deploy realizado no Google Cloud Run (free tier) e endereço ativo para ser acessado.

About

Projeto do Laboratório "Deploy com Cloud Run" do treinamento GoExpert(FullCycle).

https://github.com/aleroxac/goexpert-weather-api


Languages

Language:Go 95.2%Language:Makefile 3.5%Language:Dockerfile 1.2%