Instância Axios

Criando uma instância

Você pode criar uma nova instância do axios com uma configuração customizada.

axios.create([config])
const instance = axios.create({
  baseURL: 'https://some-domain.com/api/',
  timeout: 1000,
  headers: {'X-Custom-Header': 'foobar'}
});

Métodos de instância

Os métodos de instâncias disponiveis estão listadas abaixo. A configuração especificada será mesclada com a configuração da instância.

axios#request(config)
axios#get(url[, config])
axios#delete(url[, config])
axios#head(url[, config])
axios#options(url[, config])
axios#post(url[, data[, config]])
axios#put(url[, data[, config]])
axios#patch(url[, data[, config]])
axios#getUri([config])

Chamando a instância diretamente com um objeto de configuração

Além dos métodos convenientes como instance.get() ou instance.post(), você também pode chamar uma instância do Axios diretamente passando um objeto de configuração. Isso funciona da mesma forma que axios(config) e é útil, por exemplo, para reenviar uma requisição com a configuração original.

const instance = axios.create({ baseURL: '/api' });

// Funciona como axios(config)
instance({
  url: '/users',
  method: 'get'
});

Esse padrão permite implementar uma lógica de repetição (retry) de forma limpa, como ao lidar com erros de autenticação:

instance.interceptors.response.use(undefined, async (error) => {
  if (error.response?.status === 401) {
    await refreshToken();
    return instance(error.config); // Reenvia a requisição original
  }

  throw error;
});