Esta aplicação fornece informações meteorológicas (temperatura em Celsius, Fahrenheit e Kelvin) para um CEP brasileiro.
- Go 1.21 ou superior
- Docker e Docker Compose (para implantação em contêiner)
- Chave de API WeatherAPI (cadastre-se em https://www.weatherapi.com/)
O projeto segue os princípios da Arquitetura Limpa Simplificada:
internal/entity
: Entidades de domíniointernal/usecase
: Lógica de negóciosinternal/gateway
: Definições de interfaces para serviços externosinternal/infra/gateway
: Implementações concretas de gatewaysinternal/infra/web/handlers
: Manipuladores HTTP
-
Configure a chave WeatherAPI como uma variável de ambiente:
export WEATHERAPI_KEY=sua_chave_api_aqui
-
Execute a aplicação:
go run main.go
-
Crie um arquivo
.env
com sua chave WeatherAPI:WEATHERAPI_KEY=sua_chave_api_aqui
-
Construa e execute o contêiner:
docker-compose up --build
GET /temperature?zipcode=12345678
{
"temp_C": 28.5,
"temp_F": 83.3,
"temp_K": 301.5
}
-
Formato de CEP inválido (422 Unprocessable Entity):
invalid zipcode
-
CEP não encontrado (404 Not Found):
can not find zipcode
Execute os testes com:
go test ./...
-
Construa e envie a imagem Docker para o Google Container Registry:
gcloud builds submit --tag gcr.io/seu-id-projeto/goexpert-clima
-
Implante no Cloud Run:
gcloud run deploy goexpert-clima \ --image gcr.io/seu-id-projeto/goexpert-clima \ --platform managed \ --region us-central1 \ --set-env-vars WEATHERAPI_KEY=sua_chave_api_aqui
-
O serviço está disponível na seguinte URL fornecida pelo Cloud Run:
Este projeto está licenciado sob a Licença MIT.