You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(cptec): report upstream service unavailability - #911
Melhora o tratamento da indisponibilidade do serviço externo do CPTEC observada na issue #910.
Quando o Axios não consegue consultar listaCidades, a API agora retorna um erro explícito e semanticamente adequado:
HTTP 503
name: CPTEC_SERVICE_UNAVAILABLE
type: city_error
Erros que não são originados pelo cliente HTTP continuam sendo propagados sem alteração. A resposta de sucesso e o formato dos dados de cidades permanecem iguais.
🎯 Tipo de Mudança
🐛 Correção de bug
📝 Documentação
✅ Testes
⚠️ Compatibilidade
Não remove ou renomeia campos de respostas de sucesso
Não muda tipos de dados ou URLs existentes
Não muda códigos de status de respostas de sucesso
Diferencia uma falha do serviço externo, anteriormente exposta como erro interno genérico, usando HTTP 503
📚 Documentação
Documentação OpenAPI atualizada com a resposta 503 e exemplo
Documentação em português
🧪 Testes
Teste do retorno de cidades em caso de sucesso
Teste do erro 503 para falhas HTTP do CPTEC
Teste de preservação de erros não relacionados ao Axios
vitest: 3 testes passaram
ESLint passou nos arquivos JavaScript alterados
Prettier passou em todos os arquivos alterados
🚀 Performance e custos
Não adiciona dependências, processamento ou chamadas externas
Não altera cache ou rate limits
🔍 Como testar
Simular uma rejeição do axios.get no serviço de cidades do CPTEC.
Chamar getCityData.
Confirmar ServiceUnavailableError com status 503 e nome CPTEC_SERVICE_UNAVAILABLE.
A suíte E2E foi executada novamente no commit 8d96725. Os testes adicionados por este PR passaram ( ests/services/cptec/cities.test.js: 3/3), assim como o SonarCloud. As duas falhas restantes são externas ao diff e dependem de provedores remotos: ests/isbn-v1.test.js recebeu timeout/429/410 e terminou sem error.response; ests/cep-v3.test.js recebeu latitude/longitude nulos do provedor. A execução anterior também falhou apenas no ISBN. Poderiam reexecutar o workflow quando os provedores estabilizarem? Não alterei esses testes neste PR para manter o escopo restrito ao tratamento de indisponibilidade do CPTEC.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📋 Descrição
Melhora o tratamento da indisponibilidade do serviço externo do CPTEC observada na issue #910.
Quando o Axios não consegue consultar
listaCidades, a API agora retorna um erro explícito e semanticamente adequado:503name: CPTEC_SERVICE_UNAVAILABLEtype: city_errorErros que não são originados pelo cliente HTTP continuam sendo propagados sem alteração. A resposta de sucesso e o formato dos dados de cidades permanecem iguais.
🎯 Tipo de Mudança
📚 Documentação
🧪 Testes
vitest: 3 testes passaram🚀 Performance e custos
🔍 Como testar
axios.getno serviço de cidades do CPTEC.getCityData.ServiceUnavailableErrorcom status 503 e nomeCPTEC_SERVICE_UNAVAILABLE.📎 Issue relacionada
Related to #910.
O PR melhora o diagnóstico enquanto o upstream do INPE retorna 403; ele não afirma corrigir a indisponibilidade externa em si.