Leia o código lentamente e siga o fluxo e o formato das informações conforme necessário, conforme ele muda
Visão geral
Axios é uma biblioteca JavaScript popular usada para fazer solicitações HTTP do navegador e do Node.js. É um projeto de código aberto projetado para simplificar o processo de envio de solicitações HTTP assíncronas para endpoints REST e execução de operações CRUD (Criar, Ler, Atualizar, Excluir).
O Criador
Axios foi criado por Matt Zabriskie. O projeto é mantido pela comunidade e está disponível no GitHub.
Beneficiários
Axios é benéfico para:
-
Desenvolvedores front-end: para fazer solicitações HTTP de aplicativos da web.
-
Desenvolvedores back-end: Para integração de solicitações HTTP em aplicativos Node.js.
-
Desenvolvedores full-stack: Para lidar com solicitações HTTP tanto no lado do cliente quanto no lado do servidor.
Vantagens
-
Baseado em promessa: facilita o trabalho com solicitações e respostas assíncronas.
-
Interceptores: Permite a modificação de solicitações ou respostas antes de serem tratadas.
-
Transformação automática de dados JSON: simplifica o manuseio de dados JSON.
-
Proteção CSRF: Ajuda na proteção contra falsificação de solicitações entre sites.
-
Transformação de solicitação e resposta: transformação personalizada de solicitações e respostas.
-
Tratamento de erros: Tratamento de erros simplificado em comparação com outros métodos.
-
Amplo suporte ao navegador: Funciona em todos os navegadores modernos e Node.js.
Uso
Onde é usado
-
Aplicativos da Web: para se comunicar com serviços de back-end.
-
Aplicativos Node.js: Para fazer solicitações HTTP para outras APIs ou serviços.
-
Aplicativos móveis: como parte de estruturas como React Native.
Onde isso falha
-
Aplicativos pesados: pode não ser o melhor para transferências de dados muito grandes devido ao consumo de memória.
-
Limitações do navegador: sujeito a restrições de política de mesma origem, a menos que o CORS seja tratado adequadamente.
-
Tamanho da dependência: Dependência adicional para gerenciar, o que pode ser uma preocupação para projetos minimalistas.
Por que é usado
-
Facilidade de uso: API simples para realizar solicitações HTTP.
-
Flexibilidade: Facilmente configurável e extensível.
-
Suporte da comunidade: Ampla adoção e amplo suporte da comunidade.
Por que não seria usado
-
Tamanho da biblioteca: sobrecarga de adição de outra dependência.
-
Alternativas: preferência pela API Fetch ou outras bibliotecas como request ou superagent.
Como é usado
Instalação
npm install axios
Uso Básico
const axios = require('axios');
// Performing a GET request
axios.get('https://api.example.com/data')
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('Error fetching data:', error);
});
Uso detalhado com comentários
const axios = require('axios');
// Create an instance of axios with default settings
const instance = axios.create({
baseURL: 'https://api.example.com',
timeout: 1000,
headers: { 'X-Custom-Header': 'foobar' }
});
// Interceptor to log request details
instance.interceptors.request.use(request => {
console.log('Starting Request', request);
return request;
});
// Interceptor to log response details
instance.interceptors.response.use(response => {
console.log('Response:', response);
return response;
});
// Making a POST request
instance.post('/user', {
firstName: 'Fred',
lastName: 'Flintstone'
})
.then(response => {
console.log('User created:', response.data);
})
.catch(error => {
console.error('Error creating user:', error);
});
Exemplos de uso indevido
-
Ignorando o tratamento de erros: O não tratamento adequado dos erros pode causar falhas no aplicativo.
axios.get('https://api.example.com/data')
.then(response => {
console.log(response.data);
});
// Error handling should not be omitted
-
Bloqueio de código com solicitações síncronas: Axios não suporta solicitações síncronas, usá-lo de uma forma que espera que o comportamento síncrono seja incorreto.
Métodos
Métodos de instância
- axios(configuração)
- axios(url[, configuração])
Métodos de solicitação
- axios.request(config)
- axios.get(url[, configuração])
- axios.delete(url[,config])
- axios.head(url[, configuração])
- axios.options(url[, configuração])
- axios.post(url[, dados[, configuração]])
- axios.put(url[, dados[, configuração]])
- axios.patch(url[, dados[, configuração]])
Métodos de conveniência
- axios.all(iterável)
- axios.spread(retorno de chamada)
Criando Instâncias
Interceptadores
- axios.interceptors.request.use(onFulfilled[, onRejected[, opções]])
- axios.interceptors.response.use(onFulfilled[, onRejected[, opções]])
Padrões de configuração
Cancelar
- axios.Cancelar
- axios.CancelToken
- axios.isCancelar
Conclusão
Axios é uma biblioteca robusta e fácil de usar para fazer solicitações HTTP em aplicativos JavaScript. Ele fornece uma API poderosa com recursos como interceptação de solicitações e respostas, transformação automática de JSON e arquitetura baseada em promessas. No entanto, é essencial compreender suas limitações e usá-lo adequadamente para evitar possíveis armadilhas.