Async/Await na Prática – Buscando Dados de APIs de Forma Simples e Eficaz

Tempo de leitura: 5 min

Escrito por Celso Kitamura
em 27 de maio de 2025

Compartilhe agora mesmo:

Async/Await na Prática – Buscando Dados de APIs de Forma Simples e Eficaz
Rate this post

Já se perguntou como os aplicativos que você usa no dia a dia, como o Instagram ou o Facebook, conseguem mostrar tantas informações em tempo real?

 

Nesse artigo eu vou te mostrar que a resposta está nas APIs, que são como garçons que trazem os dados do servidor para o seu aplicativo. E para que essa comunicação seja rápida e eficiente, usamos o Async/Await.

 

Vamos conversar sobre como usar Async/Await para buscar dados de APIs de forma simples e eficaz.

 

 

Async/Await na Prática – Buscando Dados de APIs de Forma Simples e Eficaz

 

No mundo da programação web, as APIs (Application Programming Interfaces) são como a espinha dorsal da comunicação entre diferentes sistemas. Imagine que você está usando um aplicativo de previsão do tempo. Esse aplicativo precisa buscar informações sobre a temperatura, umidade e outras condições climáticas de um servidor remoto. Essa busca de informações é feita através de uma API.

 

As APIs permitem que diferentes aplicativos e sistemas troquem informações de forma organizada e eficiente. Para buscar dados de uma API, precisamos fazer uma requisição HTTP (Hypertext Transfer Protocol), que é como um pedido que enviamos para o servidor. O servidor, por sua vez, responde com os dados solicitados.

 

Tradicionalmente, JavaScript utilizava callbacks e promises para lidar com requisições HTTP. No entanto, Async/Await surge como uma solução mais elegante e fácil de entender para lidar com operações assíncronas, tornando o código mais legível e eficiente.

 

O que é a Fetch API?

 

A Fetch API é uma interface moderna para fazer requisições HTTP em JavaScript. Ela oferece uma forma mais flexível e poderosa de buscar dados de APIs do que os métodos tradicionais, como o XMLHttpRequest. A Fetch API retorna uma promise, o que a torna perfeita para ser usada com Async/Await.

 

Como Usar Async/Await com a Fetch API?

 

Para usar Async/Await com a Fetch API, precisamos seguir alguns passos simples:

 

  • Definir uma Função Assíncrona: Primeiro, precisamos definir uma função como async. Isso indica que a função pode conter expressões await.
  • Fazer a Requisição HTTP: Dentro da função async, usamos a função fetch() para fazer a requisição HTTP para a API. A função fetch() retorna uma promise que será resolvida quando a resposta do servidor for recebida.
  • Esperar a Resposta: Usamos a palavra-chave await para esperar a resolução da promise retornada por fetch(). Isso pausa a execução da função até que a resposta do servidor seja recebida.
  • Processar a Resposta: Depois de receber a resposta, precisamos processá-la para extrair os dados que nos interessam. A Fetch API oferece vários métodos para processar a resposta, como json(), text() e blob().
  • Tratar Erros: É importante tratar erros que podem ocorrer durante a requisição HTTP. Podemos usar um bloco try/catch para capturar erros e exibir mensagens de erro úteis.

 

Exemplo Prático – Buscando Dados de uma API de Usuários

 

Vamos ver um exemplo prático de como usar Async/Await com a Fetch API para buscar dados de uma API de usuários.

 

async function buscarUsuario(id) {
  try {
    const resposta = await fetch(`https://reqres.in/api/users/${id}`);
    const usuario = await resposta.json();
    return usuario.data;
  } catch (erro) {
    console.error("Erro ao buscar usuário:", erro);
    return null;
  }
}

async function exibirUsuario(id) {
  const usuario = await buscarUsuario(id);
  if (usuario) {
    console.log("Nome:", usuario.first_name + " " + usuario.last_name);
    console.log("Email:", usuario.email);
    console.log("Avatar:", usuario.avatar);
  } else {
    console.log("Usuário não encontrado.");
  }
}

exibirUsuario(1);

 

Neste exemplo:

 

  • A função buscarUsuario é declarada como async, o que significa que ela sempre retorna uma promise.
  • Dentro da função, usamos await para esperar a resposta da API (fetch) e para converter a resposta em JSON.
  • Se ocorrer algum erro durante a requisição, o bloco try/catch captura o erro e exibe uma mensagem no console.
  • A função exibirUsuario também é async e usa await para esperar o resultado da função buscarUsuario.
  • Se o usuário for encontrado, exibimos suas informações; caso contrário, exibimos uma mensagem de erro.

 

Tratamento de Erros com Try/Catch:

 

O bloco try/catch é uma ferramenta poderosa para lidar com erros em operações assíncronas. Ele permite que você capture erros que podem ocorrer durante a requisição HTTP e exiba mensagens de erro úteis para o usuário.

 

async function buscarUsuario(id) {
  try {
    const resposta = await fetch(`https://reqres.in/api/users/${id}`);
    if (!resposta.ok) {
      throw new Error(`Erro HTTP: ${resposta.status}`);
    }
    const usuario = await resposta.json();
    return usuario.data;
  } catch (erro) {
    console.error("Erro ao buscar usuário:", erro);
    return null;
  }
}

 

Neste exemplo, verificamos se a resposta da API foi bem-sucedida usando a propriedade ok da resposta. Se a resposta não for bem-sucedida, lançamos um erro com uma mensagem descritiva. O bloco catch captura o erro e exibe uma mensagem no console.

 

Palavras Finais

 

Async/Await, combinado com a Fetch API, oferece uma forma simples e eficaz de buscar dados de APIs em JavaScript. Ele torna o código mais legível, fácil de entender e manter, além de simplificar o tratamento de erros. Se você está começando a programar em JavaScript, aprender a usar Async/Await com a Fetch API é uma habilidade essencial que você deve dominar.

 

Lembre-se, a chave para dominar Async/Await é a prática. Experimente com diferentes APIs, explore as opções de configuração da Fetch API e pratique o tratamento de erros. Com o tempo, você se tornará um mestre em Async/Await e poderá criar aplicações JavaScript mais dinâmicas e interativas.

 

 


 

Cansado de se sentir perdido no labirinto do JavaScript assíncrono? As Promises e Callbacks te dão dor de cabeça?

 

Você não está sozinho!

 

Muitos programadores como você se sentem frustrados com a complexidade do código assíncrono.

 

E se eu te dissesse que existe uma maneira mais simples, elegante e eficiente de lidar com operações assíncronas?

 

Apresento o Async Surge: a solução que vai transformar a forma como você programa em JavaScript.

 

Imagine um código mais limpo, fácil de ler e manter. Imagine poder escrever aplicações mais rápidas e robustas, sem se preocupar com callbacks aninhados.

 

Com o meu treinamento Async Surge, você pode! Meu treinamento completo te guiará passo a passo, desde os conceitos básicos até as técnicas avançadas.

 

Não perca mais tempo se debatendo com o código assíncrono. Garanta sua vaga no Async Surge. Domine a concorrência em JavaScript e impulsione sua carreira!

 

https://celsokitamura.com.br/async

Compartilhe agora mesmo:

Você vai gostar também:

Damos valor à sua privacidade

Nós e os nossos parceiros armazenamos ou acedemos a informações dos dispositivos, tais como cookies, e processamos dados pessoais, tais como identificadores exclusivos e informações padrão enviadas pelos dispositivos, para as finalidades descritas abaixo. Poderá clicar para consentir o processamento por nossa parte e pela parte dos nossos parceiros para tais finalidades. Em alternativa, poderá clicar para recusar o consentimento, ou aceder a informações mais pormenorizadas e alterar as suas preferências antes de dar consentimento. As suas preferências serão aplicadas apenas a este website.

Cookies estritamente necessários

Estes cookies são necessários para que o website funcione e não podem ser desligados nos nossos sistemas. Normalmente, eles só são configurados em resposta a ações levadas a cabo por si e que correspondem a uma solicitação de serviços, tais como definir as suas preferências de privacidade, iniciar sessão ou preencher formulários. Pode configurar o seu navegador para bloquear ou alertá-lo(a) sobre esses cookies, mas algumas partes do website não funcionarão. Estes cookies não armazenam qualquer informação pessoal identificável.

Cookies de desempenho

Estes cookies permitem-nos contar visitas e fontes de tráfego, para que possamos medir e melhorar o desempenho do nosso website. Eles ajudam-nos a saber quais são as páginas mais e menos populares e a ver como os visitantes se movimentam pelo website. Todas as informações recolhidas por estes cookies são agregadas e, por conseguinte, anónimas. Se não permitir estes cookies, não saberemos quando visitou o nosso site.

Cookies de funcionalidade

Estes cookies permitem que o site forneça uma funcionalidade e personalização melhoradas. Podem ser estabelecidos por nós ou por fornecedores externos cujos serviços adicionámos às nossas páginas. Se não permitir estes cookies algumas destas funcionalidades, ou mesmo todas, podem não atuar corretamente.

Cookies de publicidade

Estes cookies podem ser estabelecidos através do nosso site pelos nossos parceiros de publicidade. Podem ser usados por essas empresas para construir um perfil sobre os seus interesses e mostrar-lhe anúncios relevantes em outros websites. Eles não armazenam diretamente informações pessoais, mas são baseados na identificação exclusiva do seu navegador e dispositivo de internet. Se não permitir estes cookies, terá menos publicidade direcionada.

Visite as nossas páginas de Políticas de privacidade e Termos e condições.

Importante: Este site faz uso de cookies que podem conter informações de rastreamento sobre os visitantes.
Criado por WP RGPD Pro