Apidog

All-in-one Collaborative API Development Platform

Design de API

Documentação de API

Depuração de API

Mock de API

Testes Automatizados de API

Inscreva-se gratuitamente
Home / Tutoriais / Dominando Interceptores de API Axios: Um Guia Abrangente

Dominando Interceptores de API Axios: Um Guia Abrangente

Descubra o poder dos interceptores de API do Axios para uma gestão eficiente de requisições HTTP. Aprenda a configurar e usar interceptores e explore os benefícios do Apidog para testes e gerenciamento de API. Baixe o Apidog gratuitamente hoje!

Olá, colegas desenvolvedores! Hoje, vamos mergulhar no mundo dos interceptores de API do Axios. Se você está trabalhando com APIs, especialmente no campo do desenvolvimento web, sabe como é vital gerenciar suas requisições HTTP de forma eficiente. É aí que os interceptores de API do Axios são úteis. Neste post, vamos explorar o que são os interceptores de API do Axios, por que você precisa deles e como usá-los de forma eficaz. Além disso, vamos apresentá-lo ao Apidog, uma ferramenta fantástica para teste e gerenciamento de APIs que você pode baixar gratuitamente. Então, vamos começar!

botão

O que são interceptores de API do Axios?

Antes de mergulharmos nos detalhes, vamos esclarecer o que são os interceptores de API do Axios. Em termos simples, os interceptores do Axios são um recurso da biblioteca Axios que permite interceptar e modificar requisições HTTP e respostas globalmente antes que sejam tratadas pelo then ou catch.

Imagine ter um segurança na entrada da sua aplicação, verificando e ajustando cada requisição e resposta que passar. É exatamente isso que os interceptores fazem. Eles fornecem uma maneira centralizada de adicionar lógica personalizada às suas requisições HTTP e respostas.

Site Oficial do Axios

Por que usar interceptores de API do Axios?

Você pode estar se perguntando, por que se preocupar com interceptores quando você pode lidar diretamente com requisições e respostas no seu código? Bem, aqui estão algumas razões convincentes:

Tratamento de Erros Global: Os interceptores permitem implementar tratamento de erros global. Em vez de escrever código de tratamento de erros para cada requisição, você pode defini-lo uma vez em um interceptor e reutilizá-lo em toda a sua aplicação.

Gerenciamento de Tokens: Gerenciar tokens de autenticação pode ser uma dor de cabeça. Com os interceptores, você pode anexar automaticamente tokens às suas requisições e lidar com a expiração de tokens de forma tranquila.

Registro e Depuração: Os interceptores fornecem uma excelente maneira de registrar requisições e respostas para fins de depuração. Você pode registrar informações importantes sobre cada requisição e resposta, ajudando a diagnosticar problemas mais rapidamente.

Modificação de Requisições: Às vezes, você precisa modificar requisições antes que elas sejam enviadas. Os interceptores permitem adicionar cabeçalhos, transformar dados da requisição e mais, tudo em um só lugar.

Transformação de Respostas: Da mesma forma, você pode transformar respostas antes que elas cheguem à lógica da sua aplicação. Isso pode ser útil para normalizar dados, lidar com diferentes formatos de resposta, etc.

Agora que entendemos a importância dos interceptores de API do Axios, vamos passar para como configurá-los.

Configurando os interceptores de API do Axios

Para começar, você precisa ter Axios instalado no seu projeto. Se você ainda não fez isso, pode instalá-lo usando npm ou yarn:

npm install axios

ou

yarn add axios

Uma vez que você tenha Axios instalado, pode criar uma instância do Axios e configurar seus interceptores. Vamos passar pelo processo passo a passo.

Criando uma Instância do Axios

Primeiro, vamos criar uma instância do Axios. Essa instância nos permitirá configurar interceptores e fazer requisições HTTP.

import axios from 'axios';

// Crie uma instância do Axios
const api = axios.create({
  baseURL: 'https://api.example.com',
  timeout: 1000,
  headers: {'X-Custom-Header': 'foobar'}
});

Adicionando Interceptores de Requisição

Os interceptores de requisição são usados para modificar requisições antes que sejam enviadas. Por exemplo, você pode adicionar tokens de autenticação ou cabeçalhos personalizados a cada requisição.

// Adicione um interceptor de requisição
api.interceptors.request.use(
  (config) => {
    // Faça algo antes que a requisição seja enviada
    config.headers.Authorization = `Bearer ${localStorage.getItem('token')}`;
    return config;
  },
  (error) => {
    // Faça algo em caso de erro na requisição
    return Promise.reject(error);
  }
);

Adicionando Interceptores de Resposta

Os interceptores de resposta são usados para modificar respostas antes que elas cheguem à sua lógica de aplicação. Por exemplo, você pode lidar com respostas de erro global ou transformar dados.

// Adicione um interceptor de resposta
api.interceptors.response.use(
  (response) => {
    // Faça algo com os dados da resposta
    return response;
  },
  (error) => {
    // Faça algo em caso de erro na resposta
    if (error.response.status === 401) {
      // Lide com acesso não autorizado (por exemplo, redirecione para login)
      window.location.href = '/login';
    }
    return Promise.reject(error);
  }
);

Combinando Interceptores de Requisição e Resposta

Você pode combinar tanto os interceptores de requisição quanto os de resposta para criar um mecanismo robusto de tratamento de API.

api.interceptors.request.use(
  (config) => {
    config.headers.Authorization = `Bearer ${localStorage.getItem('token')}`;
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

api.interceptors.response.use(
  (response) => {
    return response;
  },
  (error) => {
    if (error.response.status === 401) {
      window.location.href = '/login';
    }
    return Promise.reject(error);
  }
);

Casos Práticos de Uso dos Interceptores de API do Axios

Vamos explorar alguns casos práticos onde os interceptores de API do Axios podem tornar sua vida mais fácil.

Caso de Uso 1: Mecanismo de Atualização de Token

Em muitas aplicações, você precisa lidar com a expiração de tokens e atualizar tokens sem problemas. Os interceptores podem ajudá-lo a alcançar isso.

api.interceptors.response.use(
  (response) => {
    return response;
  },
  async (error) => {
    const originalRequest = error.config;
    if (error.response.status === 401 && !originalRequest._retry) {
      originalRequest._retry = true;
      const refreshToken = localStorage.getItem('refreshToken');
      const res = await api.post('/auth/refresh-token', { token: refreshToken });
      if (res.status === 200) {
        localStorage.setItem('token', res.data.token);
        api.defaults.headers.common['Authorization'] = `Bearer ${res.data.token}`;
        return api(originalRequest);
      }
    }
    return Promise.reject(error);
  }
);

Caso de Uso 2: Tratamento Centralizado de Erros

Em vez de tratar erros em cada chamada de API, você pode centralizar o tratamento de erros em um interceptor.

api.interceptors.response.use(
  (response) => {
    return response;
  },
  (error) => {
    if (error.response) {
      switch (error.response.status) {
        case 400:
          alert('Requisição Inválida');
          break;
        case 401:
          alert('Não Autorizado');
          break;
        case 404:
          alert('Não Encontrado');
          break;
        default:
          alert('Ocorreu um erro');
      }
    }
    return Promise.reject(error);
  }
);

Caso de Uso 3: Registro de Requisições e Respostas

Para fins de depuração, você pode querer registrar cada requisição e resposta.

api.interceptors.request.use(
  (config) => {
    console.log('Requisição:', config);
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

api.interceptors.response.use(
  (response) => {
    console.log('Resposta:', response);
    return response;
  },
  (error) => {
    console.log('Erro Resposta:', error.response);
    return Promise.reject(error);
  }
);

Introdução ao Apidog: Seu Companheiro de API

Enquanto os interceptores de API do Axios são poderosos, testar e gerenciar APIs ainda pode ser desafiador. É aí que o Apidog entra em cena. O Apidog é uma ferramenta fantástica que ajuda você a projetar, testar e documentar suas APIs com facilidade.

botão

Por que escolher o Apidog?

  • Interface Amigável: O Apidog oferece uma interface limpa e intuitiva que torna o teste de API fácil.
  • Testes Abrangentes: Com o Apidog, você pode criar e executar cenários de teste complexos, garantindo que suas APIs sejam robustas e confiáveis.
  • Colaboração: O Apidog suporta colaboração em equipe, permitindo que vários desenvolvedores trabalhem em projetos de API simultaneamente.
  • Gratuito para Usar: O melhor de tudo, o Apidog é gratuito para download e uso. Seja você um desenvolvedor solo ou parte de uma grande equipe, o Apidog está aqui para ajudar.

Apidog e Interceptores do Axios

Ao utilizar os interceptores do Axios, Apidog pode capturar e analisar automaticamente requisições e respostas de API, fornecendo insights valiosos e ajudando você a identificar e resolver problemas de forma mais eficiente.

Passo 1: Abra o Apidog e selecione nova requisição

Passo 2: Insira a URL do endpoint da API para o qual você deseja enviar uma requisição,insira quaisquer cabeçalhos ou parâmetros de string de consulta que deseje incluir na requisição, em seguida, clique em "Projetar" para mudar para a interface de design do Apidog.

Passo 3: Selecione "Gerar código do cliente" para gerar seu código.

Passo 4: Copie o código Axios gerado e cole-o no seu projeto.

Usando o Apidog para Enviar Requisições HTTP

Apidog oferece vários recursos avançados que aprimoram ainda mais sua capacidade de testar requisições HTTP. Esses recursos permitem que você personalize suas requisições e lide com cenários mais complexos sem esforço.

botão

Passo 1: Abra o Apidog e crie uma nova requisição.

Apidog

Passo 2: Encontre ou insira manualmente os detalhes da API para a requisição POST que você deseja fazer.

Apidog

Passo 3: Preencha os parâmetros necessários e quaisquer dados que queira incluir no corpo da requisição.

Apidog

Melhores Práticas para Usar Interceptores do Axios

Embora os interceptores axios sejam ferramentas poderosas, é importante seguir as melhores práticas para garantir um código limpo, manutenível e evitar armadilhas comuns.

Dicas para um código de interceptor limpo e manutenível

  1. Separe as preocupações: Divida sua lógica de interceptor em funções ou módulos separados com base em suas responsabilidades. Isso promove a reutilização do código e torna mais fácil manter e atualizar funcionalidades específicas.
  2. Use padrões de middleware: Adote padrões de middleware ao estruturar seus interceptores. Essa abordagem permite encadear vários interceptores juntos, promovendo código modular e compostável.
  3. Aproveite a programação funcional: Os interceptores do Axios se adaptam bem aos princípios da programação funcional. Utilize funções puras, funções de alta ordem e estruturas de dados imutáveis para criar um código mais previsível e testável.

Evitando armadilhas comuns

  1. Nunca modifique os objetos originais de requisição/resposta: Sempre retorne um novo objeto ou uma versão clonada do objeto de requisição ou resposta original. Modificar os objetos originais pode levar a comportamentos inesperados e a problemas difíceis de depurar.
  2. Trate erros de forma apropriada: Assegure que os erros sejam corretamente propagados ou tratados dentro de seus interceptores. Falhar em fazê-lo pode resultar em rejeições de promessas não tratadas e mensagens de erro obscuras.
  3. Esteja atento ao desempenho: Embora os interceptores sejam poderosos, o uso excessivo deles ou a introdução de lógica complexa pode impactar negativamente o desempenho. Busque simplicidade e eficiência nas suas implementações de interceptores.

Conclusão

Os interceptores de API do Axios são uma ferramenta inestimável para gerenciar requisições e respostas HTTP em suas aplicações. Eles fornecem uma maneira centralizada de tratar erros, gerenciar tokens, registrar dados e muito mais. Ao configurar interceptores de API do Axios, você pode simplificar suas interações com a API e criar uma base de código mais robusta e manutenível.

Além disso, o Apidog complementa o Axios oferecendo uma plataforma poderosa para teste e gerenciamento de APIs. Se você está trabalhando em um pequeno projeto ou em uma aplicação de grande escala, o Apidog pode ajudá-lo a garantir que suas APIs sejam confiáveis e bem documentadas.

Então, o que você está esperando? Comece a implementar interceptores de API do Axios em seus projetos e baixe o Apidog gratuitamente para levar suas APIs para o próximo nível. Boa codificação!

botão

Junte-se à Newsletter da Apidog

Inscreva-se para ficar atualizado e receber os últimos pontos de vista a qualquer momento.