"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Eixos

Eixos

Publicado em 2024-08-06
Navegar:451

Axios

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

  1. Baseado em promessa: facilita o trabalho com solicitações e respostas assíncronas.
  2. Interceptores: Permite a modificação de solicitações ou respostas antes de serem tratadas.
  3. Transformação automática de dados JSON: simplifica o manuseio de dados JSON.
  4. Proteção CSRF: Ajuda na proteção contra falsificação de solicitações entre sites.
  5. Transformação de solicitação e resposta: transformação personalizada de solicitações e respostas.
  6. Tratamento de erros: Tratamento de erros simplificado em comparação com outros métodos.
  7. 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

  1. Aplicativos pesados: pode não ser o melhor para transferências de dados muito grandes devido ao consumo de memória.
  2. Limitações do navegador: sujeito a restrições de política de mesma origem, a menos que o CORS seja tratado adequadamente.
  3. 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

  1. 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
  1. 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

  • axios.create([config])

Interceptadores

  • axios.interceptors.request.use(onFulfilled[, onRejected[, opções]])
  • axios.interceptors.response.use(onFulfilled[, onRejected[, opções]])

Padrões de configuração

  • axios.defaults

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.

Declaração de lançamento Este artigo está reproduzido em: https://dev.to/l_thomas_7c618d0460a87887/axios-ndn?1 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3