Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Serviço instável de busca de ceps #269

Open
Sabaudo opened this issue Mar 7, 2024 · 5 comments
Open

Serviço instável de busca de ceps #269

Sabaudo opened this issue Mar 7, 2024 · 5 comments

Comments

@Sabaudo
Copy link

Sabaudo commented Mar 7, 2024

Nos últimos dias, notei que a consulta pelos ceps está retornando 404 not found com ceps existentes. Análise algumas issues por aqui e percebi que o problema pode ser com erros sendo armazenados em cache, retornando estes erros quando não deveria.
Em alguns momentos a busca por um cep só funciona com hífen, outras vezes sem hífen e em último caso talvez funcione colocando "?test" depois da url.

No cep 88062510 só deu certo com o hífen, mas não é garantido pois ontem estava funcionando sem o hífen.

https://brasilapi.com.br/api/cep/v1/88062510
https://brasilapi.com.br/api/cep/v1/88062-510
https://brasilapi.com.br/api/cep/v1/88062510?test

@wellwelwel
Copy link
Contributor

wellwelwel commented Mar 7, 2024

Complementando com um pouco de debug:

Usando os provedores brasilapi ou correios:

import cep from 'cep-promise';

const CEP = await cep('88062510', {
  providers: ['brasilapi'] // ou 'correios'
});

console.log(CEP);

Erro:

Todos os serviços de CEP retornaram erro

Usando os provedores viacep, widenet ou correios-alt:

{
  cep: '88062510',
  state: 'SC',
  city: 'Florianópolis',
  neighborhood: 'Lagoa da Conceição',
  street: 'Servidão Kairós',
  service: 'viacep' // ou 'widenet' e 'correios-alt'
}

@wellwelwel
Copy link
Contributor

wellwelwel commented Mar 7, 2024

Supondo que de fato o problema seja o cachê, acredito que o problema esteja no BrasilAPI, onde o cache, por exemplo, só deveria ser gerado se o CEP for retornado com sucesso.

Usando o cep-promise, ele irá retornar o CEP normalmente com a primeira resposta de sucesso, mesmo que outras derem erro:

import cep from 'cep-promise';

const CEP = await cep('88062-510');

console.log(CEP);

Saída:

{
  cep: '88062510',
  state: 'SC',
  city: 'Florianópolis',
  neighborhood: 'Lagoa da Conceição',
  street: 'Servidão Kairós',
  service: 'correios-alt'
}

@shadowlik
Copy link

shadowlik commented Mar 25, 2024

Comportamento realmente está intermitente, alguns exemplos para ajudar a debugar:

11035-030: https://brasilapi.com.br/api/cep/v1/11035-030 (CEP só funciona se buscar com hífen)
110350030: https://brasilapi.com.br/api/cep/v1/11035030 (Erro)

05418000: https://brasilapi.com.br/api/cep/v1/05418000 (Só funciona sem hífen)
05418-000: https://brasilapi.com.br/api/cep/v1/05418-000 (Erro)

Update:
No via CEP todos os casos funcionam

https://brasilapi.com.br/api/cep/v1/11035-030
https://brasilapi.com.br/api/cep/v1/11035030

@alijuniorbr
Copy link

Realmente é um erro de cache, pois se colocar uma string aleatoria ?xxx apos o cep ele refaz a busca e retorna o resultado correto.

A ViaCep esta funcionando normalmente como verificado acessando em formato JSON ou em formato XML porem esse mesmo cep retorna um erro https://brasilapi.com.br/api/cep/v1/04513010 a nao ser que altere a url para invalidar o cache desse cep como em https://brasilapi.com.br/api/cep/v1/04513010?alijunior

@alijuniorbr
Copy link

Acredito que a implementacao para correção seria de salvar o cache somente em caso de sucesso no retorno da pesquisa, ou entao invalidar o cache apos determinado periodo.

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

No branches or pull requests

4 participants