Axios é uma opção altamente favorecida para executar solicitações HTTP em JavaScript. Aprenda como fazer isso de forma eficaz com a ajuda deste guia abrangente.

Axios é uma biblioteca JavaScript que fornece uma API simples para enviar solicitações HTTP de código JavaScript do lado do cliente ou código Node.js do lado do servidor. O Axios é construído na API Promise do JavaScript, o que torna o código assíncrono mais fácil de manter.

Introdução ao Axios

Você pode utilizar o Axios em seu aplicativo usando uma rede de entrega de conteúdo (CDN) ou instalando-o em seu projeto.

Para usar o Axios diretamente em HTML, copie o link CDN abaixo e insira-o na seção head do seu arquivo HTML:

<roteiroorigem=" https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js">roteiro>

Com esta abordagem, você pode usar o Axios e seus métodos HTTP no corpo de seus scripts HTML. Axios também pode consumir APIs REST em uma estrutura como React.

Para usar o Axios em um projeto Node.js, instale-o no diretório do projeto usando o gerenciador de pacotes npm ou yarn:

npm instalar axios
# ou
fio adicionar axios

Após a instalação, você pode começar a usar o Axios em seu projeto JavaScript:

const axios = exigir('axios');

Ao longo deste guia, você trabalhará com o software gratuito JSONPlaceholder API. Embora esta API tenha um conjunto de recursos, você utilizará apenas os /comments e /posts pontos de extremidade. Endpoints são URLs específicos que podem ser acessados ​​para recuperar ou manipular dados.

Fazendo solicitações GET com Axios

Existem várias maneiras de fazer uma solicitação GET usando o Axios. No entanto, a sintaxe geralmente depende da preferência.

Uma das maneiras de fazer uma solicitação GET é usando o método axios() método com um objeto que especifica o método de solicitação como pegar e a URL para onde enviar a solicitação.

Por exemplo:

const axios = exigir("axios");

axios({
método: "pegar",
url: " https://jsonplaceholder.typicode.com/comments",
})
.então((res) => {
console.log (res.data);
})
.pegar((errar) => {
console.erro (erro);
});

Este exemplo cria uma promessa usando o modelo de programação assíncrona encadeando o .então() e .pegar() métodos. A promessa registra a resposta no console quando a solicitação é bem-sucedida e registra a mensagem de erro se a solicitação falhar.

O Axios também fornece uma maneira mais fácil de fazer solicitações GET que eliminam a necessidade de passar um objeto encadeando o .pegar() método para o axios instância.

Por exemplo:

axios
.pegar(" https://jsonplaceholder.typicode.com/comments")
.então((res) => {
console.log (res.data);
})
.pegar((errar) => {
console.erro (erro);
});

Fazendo solicitações POST com Axios

Fazer uma solicitação POST com Axios é semelhante a fazer uma solicitação GET. Você pode enviar dados para um servidor usando esta solicitação.

O trecho de código abaixo é um exemplo de como usar o Axios' .publicar() método:

axios
.publicar(" https://jsonplaceholder.typicode.com/comments", {
nome: "Jackson Smith",
e-mail: "[email protected]",
corpo: "Esta e uma obra de arte.",
})
.então((res) => {
console.log (res.data);
})
.pegar((errar) => {
console.erro (erro);
});

O código faz uma solicitação POST à ​​API JSONPlaceholder para criar um novo comentário. O axios.post método envia dados para o /comments ponto final.

Os dados enviados na requisição são um objeto com um nome, e-mail, e corpo propriedade. Se a solicitação for bem-sucedida, o então O método registra os dados de resposta no console. E se houver um erro, o pegar O método registra o erro no console.

Fazendo solicitações PUT/PATCH com Axios

Você pode usar a solicitação PUT ou PATCH para atualizar um recurso existente no servidor. Enquanto PUT substitui todo o recurso, PATCH atualiza apenas os campos especificados.

Para fazer uma solicitação PUT ou PATCH com o Axios, você precisa usar o .colocar() ou .correção() métodos respectivamente.

Aqui está um exemplo de como usar esses métodos para atualizar o e-mail propriedade do comentário com um id de 100:

const axios = exigir("axios");

axios
.pegar(" https://jsonplaceholder.typicode.com/comments/100")
.então((res) => {
console.log (res.data.email);
})
.pegar((errar) => {
console.erro (erro);
});

// Saída:
// '[email protected]'

axios
.correção(" https://jsonplaceholder.typicode.com/comments/100", {
e-mail: "[email protected]",
})
.então((res) => {
console.log (res.data.email);
})
.pegar((errar) => {
console.erro (erro);
});

// Saída:
// '[email protected]',

Este programa primeiro faz uma solicitação GET para o endpoint " https://jsonplaceholder.typicode.com/comments/100". Em seguida, ele registra o e-mail propriedade do comentário com um ID de 100 para o console. Estamos fazendo uma requisição GET para que você veja o que mudou após fazer a requisição PATCH.

A segunda solicitação é uma solicitação PATCH para o mesmo endpoint. Este código atualiza o e-mail do comentário para [email protected].

Fazendo solicitações DELETE com Axios

Você pode usar o EXCLUIR solicitação para excluir um recurso no servidor.

Veja o exemplo a seguir de como usar o .excluir() método para excluir um recurso do servidor:

axios
.excluir(" https://jsonplaceholder.typicode.com/comments/10")
.então((res) => {
console.log (res.data);
})
.pegar((errar) => {
console.erro (erro);
});
//Output:
// {}

Ao registrar um objeto vazio no console, o código acima mostra que ele excluiu o comentário com o ID 10.

Fazendo solicitações simultâneas com o Axios

Você pode buscar dados de vários endpoints ao mesmo tempo usando o Axios. Para fazer isso, você precisa usar o .todos() método. Esse método aceita uma matriz de solicitações como parâmetro e resolve somente quando você recebe todas as respostas.

No exemplo a seguir, o .todos() O método recupera dados de dois endpoints simultaneamente:

axios
.todos([
axios.get(" https://jsonplaceholder.typicode.com/comments? _limite=2"),
axios.get(" https://jsonplaceholder.typicode.com/posts? _limite=2"),
])
.então(
axios.spread((comentários, postagens) => {
console.log (comentários.dados);
console.log (postagens.dados);
})
)
.pegar((errar) =>console.erro (erro));

O bloco de código acima envia solicitações simultaneamente e passa as respostas para o .então() método. Axios .espalhar() O método separa as respostas e atribui cada resposta à sua variável.

Finalmente, o console registra o dados propriedade das duas respostas: comentários e postagens.

Interceptando Pedidos com Axios

Às vezes, pode ser necessário interceptar uma solicitação antes que ela chegue ao servidor. Você pode usar o Axios interceptors.request.use() método para interceptar solicitações.

No exemplo a seguir, o método registra o tipo de solicitação no console para cada solicitação feita:

axios.interceptors.request.use(
(configuração) => {
console.registro(`${config.method} pedido feito`);
retornar configuração;
},
(erro) => {
retornarPromessa.reject (erro);
}
);

axios
.pegar(" https://jsonplaceholder.typicode.com/comments? _limite=2")
.então((res) =>console.log (res.dados))
.pegar((errar) =>console.erro (erro));

O programa define um interceptor Axios usando o axios.interceptors.request.use método. Este método leva configuração e erro objetos como argumentos. O configuração O objeto contém informações sobre a solicitação, incluindo o método de solicitação (config.método) e a URL da solicitação (config.url).

A função interceptora retorna o configuração objeto, permitindo que a requisição prossiga normalmente. Se houver um erro, a função retorna o rejeitado Promessa objeto.

Por fim, o programa faz uma solicitação para testar o interceptador. O console registrará o tipo de solicitação feita, neste caso, uma solicitação GET.

Há mais no Axios

Você aprendeu como fazer e interceptar solicitações em seus projetos usando o Axios. Muitos outros recursos, como transformar solicitações e usar instâncias do Axios, estão disponíveis para você como desenvolvedor JavaScript explorar. Axios continua sendo uma opção preferencial para fazer solicitações HTTP em seus aplicativos JavaScript. No entanto, Fetch API é outra boa opção que você pode explorar.