Voltar ao blog

Usando o cliente HTTP Axios em uma Aplicação React: Um Tutorial

Usando o cliente HTTP Axios em uma Aplicação React: Um Tutorial

Muitos aplicativos web enfrentam a necessidade de fazer interface com uma API REST em algum momento de seu desenvolvimento. Para aplicativos web baseados em React, podemos usar Axios, um cliente HTTP leve baseado no $http serviço dentro do Angular.js v1.x. Os recursos são semelhantes à Fetch API.

nativa do JavaScript. O Axios é baseado em promessas, permitindo-nos incorporar o async e await do JavaScript para um código síncrono mais legível. Ele também suporta interceptação e cancelamento de requisições. Além disso, há proteção integrada do lado do cliente contra falsificação de solicitação entre sites.

Neste guia, mostraremos como usar o Axios para acessar la popular JSON Placeholder API em um aplicativo React de demonstração. Você pode aprender mais sobre o formato JSON em JavaScript neste tutorial.

Pré-requisitos

Para concluir as etapas demonstradas neste guia, você precisará dos seguintes componentes:

Passo 1: Instalar o Axios no Projeto React

O Axios está diretamente disponível como um módulo npm. Confira o Axios no npm. Tudo o que precisamos é estabelecer um projeto React e instalar o pacote Axios.

O seguinte comando npx executará o create-react-app para criar un novo projeto React. O nome do projeto será usado para criar um diretório dedicado para o projeto. Aqui, nomeamos o projeto react-axios-demo. Execute o comando:

npx create-react-app

Altere o diretório atual para o diretório do projeto recém-criado:

Em seguida, invoque o comando npm install para instalar o Axios. Se nenhuma versão for especificada, então o npm irá baixar e instalar automaticamente a versão mais recente do Axios:

npm install axios

Nosso projeto agora está pronto para usar o Axios! É hora de colocar seus recursos em ação.

Passo 2: Construir uma Requisição GET

Nesta etapa, mostraremos a criação de um novo componente que usa o Axios para enviar uma requisição GET .

Primeiro, crie um novo componente PersonList que mostrará uma lista de nomes. Crie um diretório dedicado para armazenar o componente:

mkdir -pv

Em seguida, crie o arquivo PersonList.js :

Abra o arquivo em um editor de texto. Estamos usando o Visual Studio Code para maior conforto e legibilidade. Insira o seguinte código JavaScript:

 

this.state.persons

Here:

  • Importamos o React e o Axios para que possamos usar ambos no componente.

  • Nós nos conectamos ao hook de ciclo de vida componentDidMount e enviamos uma requisição GET.

Você pode usar axios.get(<url>) a partir de um endpoint de API para obter uma promise (que retorna um objeto de resposta). Dentro do objeto de resposta, estão os dados desejados. Em seguida, atribuímos isso ao valor de person. Também podemos coletar informações adicionais sobre a requisição, como o código de status em res.status ou mais informações de res.request.

Em seguida, precisamos adicionar o nosso componente ao arquivo principal App.js. Adicione os seguintes códigos:

 

import PersonList

A configuração está concluída para esta etapa. Agora você pode executar o aplicativo e testá-lo usando seu navegador favorito. Inicie o servidor de desenvolvimento:

Axios React code screenshot 1

Como podemos ver, a saída mostra uma lista de nomes de pessoas em ordem aleatória:

React app

Etapa 3: Construir uma Requisição POST

Nesta seção, mostraremos o uso do Axios para realizar outro método de requisição HTTP chamado POST. Para demonstrar isso, nosso objetivo é criar um novo componente em nosso projeto React chamado PersonAdd.

Crie o arquivo PersonAdd.js:

Axios React code screenshot 2

Em seguida, abra o arquivo em um editor de texto e insira o seguinte código:

Axios React code screenshot 3

Neste código, estamos pegando a entrada do usuário e enviando (POST) o conteúdo para uma API. Dentro da handleSubmit função, estamos impedindo a ação padrão do formulário e atualizando o estado para a entrada do usuário. Ao usar POST ele retorna o mesmo objeto de resposta. Podemos usar o objeto dentro de uma then chamada. Para atender à POST requisição, estamos capturando a entrada do usuário e adicionando-a junto com a POST requisição. Isso nos dá uma resposta. Estamos registrando a resposta usando console.log. Ele deve mostrar a user entrada no formulário.

Em seguida, adicione o componente ao App.js. O código completo deve ser assim:

Axios React code screenshot 4

Agora, é hora de testar as alterações. Inicie o servidor de desenvolvimento:

Verifique a alteração no navegador da web:

Axios React code screenshot 5

Etapa 4: Construir uma Requisição DELETE

Nesta seção, demonstraremos a exclusão de itens de uma API com a ajuda do axios.delete e usando uma URL como parâmetro. Para demonstrar, crie o componente PersonRemove. Crie o arquivo PersonRemove.js no diretório src/components:

Axios React code screenshot 6

Depois disso, abra o arquivo em um editor de texto e adicione o seguinte código:

Axios React code screenshot 7

Aqui, o res objeto está oferecendo as informações sobre a requisição. Podemos então usar console.log após o formulário ser enviado.

Em seguida, implemente o componente no App.js:

Axios React code screenshot 8

Hora de testar nosso código novamente. Inicie o servidor:

Você deve encontrar um novo formulário que recebe o nome do usuário e o remove da lista:

npm start

Passo 5: Aplicar a Instância Base no Axios

Agora, vamos trabalhar com a instância base do Axios. Aqui, podemos definir uma URL e outros elementos de configuração. Para implementá-la, crie um arquivo separado api.js:

Axios React code screenshot 9

Abra-o em um editor de texto e insira o seguinte código:

export default axios.create

Assim que estiver configurado, podemos usá-lo dentro do componente PersonRemove . Veja como o código ficaria:

Axios React code screenshot 10

Aqui, http://jsonplaceholder.typicode.com/ está definido como a URL base. Agora, não precisamos mais usar a URL completa toda vez que acessamos um endpoint da API.

Passo 6: Implementar async e await

Nesta seção, veremos como implementar async e await para trabalhar com promises. A palavra-chave await resolve a promise e retorna o valor. Podemos atribuir este valor a uma variável para um uso mais confortável.

Veja como o código atualizado do PersonRemove.js ficaria:

Implement async and await

Aqui, nós substituímos .then(). Assim que a promise for resolvida, armazenamos o valor na variável response.

Considerações Finais

Neste tutorial, exploramos vários exemplos de uso do Axios para trabalhar com a API REST. Os códigos mostram a criação de requisições HTTP e o tratamento de respostas.

Interessado em aprender mais sobre JavaScript? Confira nossos outros guias para iniciantes sobre vários conceitos e recursos do JavaScript, por exemplo, data e hora, manipulação de strings, classes, e objetos.

Feliz Computação!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev é um designer criativo na CloudSigma, focado na construção de uma identidade empresarial consistente por meio de canais de marketing tradicionais e inovadores. Ele é hábil em combinar a visão artística com o marketing estratégico para criar narrativas de marca impactantes.

Comentários

Nenhum comentário ainda. Seja o primeiro.