Skip to content

Update dependencies in go.mod - #63

Open
teobaldotech wants to merge 4 commits into
robertoduessmann:masterfrom
teobaldotech:master
Open

teobaldotech wants to merge 4 commits into
robertoduessmann:masterfrom
teobaldotech:master

Conversation

@teobaldotech

Copy link
Copy Markdown

Updated goquery and testify dependencies to newer versions.

Updated goquery and testify dependencies to newer versions.
Comment thread go.mod
Atualiza o .gitignore do projeto Go para excluir binários compilados, arquivos de cobertura de testes, relatórios de profiling, variáveis de ambiente, segredos, logs, arquivos temporários e configurações de IDE. Preserva arquivos de exemplo de ambiente, como .env.example, e mantém o repositório organizado para desenvolvimento, testes automatizados e integração contínua.
Updated .gitignore to include additional patterns and translated comments to Portuguese.
Visão Geral dos Componentes e Fluxo
1. Cliente e Consumo da API (WeatherService)
Gerenciamento de Timeouts: Instancia o http.Client com tempo limite (Timeout: 10 * time.Second) para garantir que o servidor não fique com threads travadas caso a API do OpenWeatherMap demore a responder.

Mapeamento de Parâmetros: Converte a unidade de medição selecionada pelo usuário (celsius ou fahrenheit) para os valores aceitos pela API de destino (metric ou imperial).

Suporte a context.Context: Utiliza http.NewRequestWithContext atrelado ao ciclo de vida da requisição HTTP (r.Context()). Se o cliente cancelar a requisição ou o tempo limite expirar, o Go interrompe imediatamente a chamada externa, economizando recursos de I/O.

Escaping de URLs: Utiliza url.QueryEscape(city) para formatar nomes de cidades que contenham espaços ou caracteres especiais (como "São Paulo").

2. Manipulador HTTP ( CurrentWeather)
Extração de Parâmetros: Lê a variável de caminho (city) e o parâmetro de consulta (unit), aplicando fallback para celsius caso não seja informado.

Gerenciamento de Variáveis de Ambiente: Lê a chave da API (OPENWEATHER_API_KEY) via os.Getenv(), evitando salvar credenciais sensíveis diretamente no código-fonte.

Tratamento de Status HTTP:

Retorna 400 Bad Request se a unidade informada for inválida.

Retorna 404 Not Found se a cidade pesquisada não existir no serviço externo.

Retorna 500 Internal Server Error se a chave de API estiver ausente ou ocorrer um erro imprevisto.

Serialização JSON: Formata e envia a resposta tratada (City, Temperature, . Unit) no formato JSON com o cabeçalho Content-Type: application/json

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants