Que vantagem prática nós temos ao utilizar o HttpClient do Angular no lugar da fetch API nativa do JavaScript?
Que vantagem prática nós temos ao utilizar o HttpClient do Angular no lugar da fetch API nativa do JavaScript?
Fala aí Carlos, tudo bem? É utilizado o HttpClient
pois é a classe responsável por realizar e lidar com requisições HTTP, dessa maneira conseguimos tirar total proveito do framework.
Não é obrigatório e nada impede em utilizar a Fetch API, porém, não estaria utilizando tudo que o framework tem para lhe oferecer.
Além disso, o HttpClient
possui recursos e features que ainda não estão presentes na Fetch API de forma tão simples e fácil.
Espero ter ajudado.
Mas, que features na prática? Nos meus projetos eu uso a fetch API e nunca senti falta de nada. Gostaria de saber se existe alguma vantagem real.
Uma necessidade muito comum é no precisar utilizar Interceptors
, com o HttpClient
é muito fácil fazer isso (não que não seja possível com Fetch).
Por padrão o HttpClient
irá trabalhar com Observable
ao invés de Promises
, com eles temos um enorme poder, podemos fazer muitas coisas (algumas delas não seriam tão fáceis com Promises).
Depois dá uma olhada na RxJS.
Um exemplo seria:
Quando o usuário realizar múltiplos cliques em um filtro, você cancela as requisições pendentes e realiza só a última.
Fazer isso com Promise é muito complicado (ignorando a técnica debounce
).
Você também terá facilidades para realizar mocks com o HttpClient
e seus testes também ficarão mais simples, pois o Angular irá se encarregar de boa parte das configurações.
Espero ter ajudado.