Publicado em

- 1 minuto de leitura

Como usar Interceptors no Angular

img of Como usar Interceptors no Angular

Interceptors no Angular são recursos muito poderosos e podem ser usados para interceptar e manipular as requisições HTTP que são feitas pela aplicação.

Nesse artigo você vai aprender como utilizar esse recurso fantástico!

Caso você goste mais do formato em vídeo, temos o seguinte conteúdo no nosso canal no Youtube:

Como criar um interceptor

No exemplo abaixo vamos criar um interceptor que intercepta todas as requisições HTTP e adiciona um Header personalizado chamado Authorization.

Você pode utilizar o comando ng g interceptor <name> para criar uma estrutura básica do interceptor.

   export const addAuthTokenInterceptor: HttpInterceptorFn = (req, next) => {
	req = req.clone({
		headers: req.headers.append('Authorization', 'my-token')
	})

	return next(req)
}

O código acima pode ficar em um arquivo TypeScript chamado add-auth-token.interceptor.ts.

Note que para alterar a variável req (que é a requisição de fato) precisamos usar o método clone para criar uma nova instância. Essa abordagem é necessário pois cada objeto de requisição HTTP é imutável.

Imagem com o texto: Curso testes automatizado com Angular e um Robo azul com uma logo do Angular atrás. Logo abaixo existe um botão com o texto 'Eu quero!'

Como usar um interceptor

Para usar o interceptor basta adicioná-lo como parâmetro na função withInterceptors da função provideHttpClient:

   export const appConfig: ApplicationConfig = {
	providers: [provideHttpClient(withInterceptors([addAuthTokenInterceptor]))]
}

O código acima é referente ao conteúdo do arquivo app.config.ts.

Pronto! Agora é só fazer requisições HTTP utilizando o serviço HttpClient e verificar se o interceptor fez as alterações esperadas.

Conclusão

Simples, não?

Interceptors é uma das funcionalidades mais poderosas do Angular devido a sua simplicidade em padronizar a manipulação de requisições HTTP em massa.

No próximo artigo você aprenderá como testar Interceptors da forma mais confiável e eficiente possível.

Obrigado por ler até aqui e até mais! 😎

Sobre o autor

Author's photo
Henrique Custódia Arquiteto Frontend, entusiasta Angular, cat lover, criador de conteúdo e fundador da Code Dimension!

Assine nossa Newsletter e receba os últimos posts e novidades da Code Dimension!