Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Bug] Erro 429

Bom dia,

Estou com problemas ao testar a aplicação, quando tento escrever algo na barra de buscar e depois clico no botão da lupa mostra esse erro de muitas requisições. Mesmo implementando o Debounce. Achei que pudesse ter perdido algum momeneto da aula, então baixei o projeto de vocês disponibilizado e mesmo assim da esse erro. Já tentei pedir ajuda pro Luri e pro Gemini e a única coisa que eles me sugerem é "Como é um bloqueio por tempo, a primeira coisa a fazer é esperar de 5 a 10 minutos sem fazer requisições para que a API do Google zere o seu contador de limite". Mesmo fazendo isso não deu certo.

Agradeço desde já.

Tela de busca no Buscante com o console do lado direito mostrando erros. Erro 429. Muitas requisições

1 resposta

Olá Débora .
Tudo bem?
Um erro comum é aplicar o debounceTime em um observable, mas continuar fazendo a chamada da API em outro trecho do código.
O debounceTime sozinho não resolve o erro de 429 (Too Many Requests) se a aplicação continuar disparando múltiplas requisições.
A implementação recomendada é combinar debounceTime, distinctUntilChanged e switchMap, garantindo que apenas a última busca seja enviada para a API:

this.searchControl.valueChanges.pipe(
  debounceTime(500),
  distinctUntilChanged(),
  switchMap(termo => this.livrosService.buscarLivros(termo))
).subscribe(resultado => {
  this.livros = resultado.items;
});

Além disso, verifique se a busca não está sendo executada em mais de um lugar. Um erro comum é ter:

  • busca automática no valueChanges;
  • busca ao clicar na lupa;
  • busca em eventos como (input) ou (keyup).

Nesses casos, cada interação gera uma nova chamada para a API, e o limite de requisições pode ser atingido rapidamente.
O ideal é que toda a lógica de busca passe pelo observable configurado com debounceTime.
Caso o erro continue mesmo após implementar esse fluxo, vale conferir no painel Network do navegador quantas requisições estão sendo enviadas a cada busca. Se uma única pesquisa estiver gerando várias chamadas, provavelmente há múltiplos subscribe() ou eventos duplicados acionando o serviço.
Analisa o codigo,testa ai e avise alguma duvida.
Bons estudos.