Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aleroxac/goexpert-weather-api
Projeto do Laboratório "Deploy com Cloud Run" do treinamento GoExpert(FullCycle).
https://github.com/aleroxac/goexpert-weather-api
api fullcycle go goexpert golang weather
Last synced: about 2 months ago
JSON representation
Projeto do Laboratório "Deploy com Cloud Run" do treinamento GoExpert(FullCycle).
- Host: GitHub
- URL: https://github.com/aleroxac/goexpert-weather-api
- Owner: aleroxac
- Created: 2024-03-06T11:45:21.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-05-21T00:03:33.000Z (8 months ago)
- Last Synced: 2024-05-21T22:19:12.007Z (8 months ago)
- Topics: api, fullcycle, go, goexpert, golang, weather
- Language: Go
- Homepage: https://github.com/aleroxac/goexpert-weather-api
- Size: 24.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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
``` shell
# 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
``` shell
## 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
- [x] O sistema deve receber um CEP válido de 8 digitos
- [x] 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.
- [x] O sistema deve responder adequadamente nos seguintes cenários:
- Em caso de sucesso:
- [x] Código HTTP: 200
- [x] 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):
- [x] Código HTTP: 422
- [x] Mensagem: invalid zipcode
- Em caso de falha, caso o CEP não seja encontrado:
- [x] Código HTTP: 404
- [x] Mensagem: can not find zipcode
- [x] Deverá ser realizado o [deploy no Google Cloud Run](https://goexpert-weather-api-llvisyuaqq-uc.a.run.app).## Requisitos: entrega
- [x] O código-fonte completo da implementação.
- [x] Testes automatizados demonstrando o funcionamento.
- [x] Utilize docker e docker-compose para que possamos realizar os testes de sua aplicação.
- [x] Deploy realizado no Google Cloud Run (free tier) e [endereço ativo para ser acessado](https://goexpert-weather-api-llvisyuaqq-uc.a.run.app).