Como Fazer uma Requisição GET em Node.js: Um Guia para Iniciantes

Aprenda a fazer requisições GET em Node.js usando o módulo http embutido e a popular biblioteca axios. Também aprenda a lidar com os dados de resposta em diferentes formatos e cenários.

Miguel Oliveira

Miguel Oliveira

24 maio 2025

Como Fazer uma Requisição GET em Node.js: Um Guia para Iniciantes

Você quer aprender a fazer requisições GET em Node.js? Se sim, você está no lugar certo. Neste post do blog, eu vou mostrar como usar o módulo http embutido e a popular biblioteca axios para fazer requisições GET em Node.js. Eu também vou explicar o que são requisições GET, por que são importantes e como lidar com os dados da resposta. Ao final deste post, você será capaz de fazer requisições GET em Node.js como um profissional.

O que é uma Requisição GET?

Uma requisição GET é um dos tipos mais comuns de requisições HTTP. HTTP significa Protocolo de Transferência de Hipertexto, que é o protocolo padrão para comunicação entre navegadores da web e servidores web. As requisições HTTP são mensagens que os navegadores da web enviam aos servidores web para solicitar ou enviar dados. As respostas HTTP são mensagens que os servidores web enviam de volta aos navegadores da web para entregar os dados solicitados ou confirmar o envio.

Uma requisição GET é um tipo de requisição HTTP que pede ao servidor web para enviar de volta um recurso específico. Por exemplo, quando você digita uma URL no seu navegador, você está fazendo uma requisição GET ao servidor web para que ele envie a página da web associada a essa URL. Uma requisição GET também pode incluir alguns parâmetros de consulta, que são pares chave-valor que fornecem informações adicionais ou filtram o recurso solicitado. Por exemplo, quando você procura algo no Google, está fazendo uma requisição GET ao servidor web do Google com alguns parâmetros de consulta que especificam seu termo de busca, idioma e outras opções.

Por que as Requisições GET são Importantes?

As requisições GET são importantes porque são a maneira primária de recuperar dados dos servidores web. Você pode usar requisições GET para acessar vários tipos de dados, como HTML, JSON, XML, imagens, vídeos e muito mais. Você também pode usar requisições GET para interagir com APIs web, que são interfaces que permitem acessar dados e serviços de outras aplicações web. Por exemplo, você pode usar requisições GET para obter informações sobre o tempo da API OpenWeatherMap, obter informações sobre filmes da API IMDb ou obter imagens de cães da API Dog.

As requisições GET também são importantes porque são fáceis de usar e testar. Você pode fazer requisições GET usando qualquer navegador da web, sem nenhuma ferramenta ou biblioteca especial. Você também pode usar ferramentas como Postman ou Apidog para fazer e testar requisições GET com diferentes parâmetros e cabeçalhos. Você também pode inspecionar os dados da resposta e os cabeçalhos usando as ferramentas de desenvolvedor do navegador ou a interface da ferramenta.

O que é o NodeJs ?

Node.js é um ambiente de execução JavaScript que permite executar código JavaScript fora de um navegador da web. O Node.js é baseado no mecanismo JavaScript V8 do Google Chrome, e é usado para construir aplicações web, especialmente aquelas que são intensivas em dados e em tempo real. O Node.js também possui uma grande biblioteca de módulos e pacotes que você pode usar para adicionar funcionalidades aos seus projetos. Alguns dos benefícios do Node.js são:

Site do NodeJs

Como Fazer uma Requisição GET em Node.js Usando o Módulo http?

Node.js é um ambiente de execução JavaScript que permite executar código JavaScript fora do navegador da web. O Node.js é frequentemente usado para criar servidores web, aplicações web e APIs web. O Node.js também fornece um módulo embutido http que permite fazer requisições e respostas HTTP.

Para fazer uma requisição GET em Node.js usando o módulo http, você precisa seguir estes passos:

  1. Importe o módulo http usando a função require.
  2. Crie um objeto options que contém as informações sobre a requisição GET, como o nome do host, porta, caminho e cabeçalhos.
  3. Use o método http.get para fazer a requisição GET, passando o objeto options como o primeiro argumento e uma função de callback como o segundo argumento. A função de callback será executada quando a resposta for recebida, e terá um objeto response como seu parâmetro.
  4. Use o objeto response para lidar com os dados e cabeçalhos da resposta. O objeto response é uma instância da classe http.IncomingMessage, que implementa a interface ReadableStream. Isso significa que você pode usar o objeto response como um fluxo de dados e escutar eventos como data, end e error. Você também pode usar a propriedade response.statusCode para obter o código de status da resposta, e a propriedade response.headers para obter os cabeçalhos da resposta.
  5. Use o método response.on para registrar ouvintes de eventos para o objeto response. Por exemplo, você pode usar o método response.on('data', callback) para escutar o evento data, que será emitido quando um pedaço de dados for recebido. A função de callback terá um objeto chunk como seu parâmetro, que é um buffer de dados. Você pode usar o método chunk.toString() para converter o buffer em uma string e anexá-lo a uma variável para armazenar todos os dados da resposta. Você também pode usar o método response.on('end', callback) para escutar o evento end, que será emitido quando a resposta estiver completa. A função de callback não terá parâmetros, e você pode usá-la para realizar ações finais, como registrar ou analisar os dados da resposta. Você também pode usar o método response.on('error', callback) para escutar o evento error, que será emitido quando um erro ocorrer durante a resposta. A função de callback terá um objeto error como seu parâmetro, e você pode usá-lo para lidar com o erro, como registrá-lo ou lançá-lo.

Aqui está um exemplo de como fazer uma requisição GET em Node.js usando o módulo http:

// Importar o módulo http
const http = require('http');

// Criar um objeto options
const options = {
  hostname: 'api.openweathermap.org',
  port: 80,
  path: '/data/2.5/weather?q=Los%20Angeles&appid=YOUR_API_KEY',
  headers: {
    'User-Agent': 'Node.js'
  }
};

// Fazer a requisição GET
http.get(options, (response) => {
  // Inicializar uma variável para armazenar os dados da resposta
  let data = '';

  // Escutar o evento de dados
  response.on('data', (chunk) => {
    // Anexar o pedaço à variável de dados
    data += chunk.toString();
  });

  // Escutar o evento de finalização
  response.on('end', () => {
    // Registrar o código de status e os cabeçalhos
    console.log(`Código de status: ${response.statusCode}`);
    console.log(`Cabeçalhos: ${JSON.stringify(response.headers)}`);

    // Analisar os dados como JSON
    const weather = JSON.parse(data);

    // Registrar as informações do tempo
    console.log(`Cidade: ${weather.name}`);
    console.log(`Temperatura: ${weather.main.temp}`);
    console.log(`Descrição: ${weather.weather[0].description}`);
  });

  // Escutar o evento de erro
  response.on('error', (error) => {
    // Lançar o erro
    throw error;
  });
});

Como Fazer uma Requisição GET em Node.js Usando a Biblioteca axios?

O módulo http é um módulo de baixo nível que fornece funcionalidade básica para fazer requisições e respostas HTTP. No entanto, se você quiser usar um módulo de nível mais alto e mais amigável, pode usar a biblioteca axios. Axios é uma biblioteca popular e poderosa que permite fazer requisições HTTP e lidar com respostas usando promessas e sintaxe async/await. O Axios também suporta recursos como interceptores, transformadores, timeouts, tokens de cancelamento e mais.

Para fazer uma requisição GET em Node.js usando a biblioteca axios, você precisa seguir estes passos:

  1. Instale a biblioteca axios usando o comando npm: npm install axios.
  2. Importe a biblioteca axios usando a função require.
  3. Use o método axios.get para fazer a requisição GET, passando a URL do recurso como o primeiro argumento e um objeto config opcional como o segundo argumento. O objeto config pode conter informações sobre a requisição GET, como os cabeçalhos, parâmetros, timeout e mais. O método axios.get retornará uma promessa, que será resolvida para um objeto response ou rejeitada para um objeto error.
  4. Use o método then para lidar com a promessa resolvida, passando uma função de callback como o primeiro argumento. A função de callback terá um objeto response como seu parâmetro, que contém os dados da resposta, status, cabeçalhos e mais. Você pode usar a propriedade response.data para acessar os dados da resposta e a propriedade response.status para acessar o código de status da resposta. Você também pode usar o método catch para lidar com a promessa rejeitada, passando uma função de callback como o primeiro argumento. A função de callback terá um objeto error como seu parâmetro, que contém a mensagem de erro, código, requisição e resposta. Você pode usar a propriedade error.response para acessar o objeto de resposta e a propriedade error.request para acessar o objeto de requisição.
  5. Alternativamente, você pode usar a sintaxe async/await para fazer a requisição GET e lidar com a resposta. Para fazer isso, você precisa usar a palavra-chave async antes da função que contém a requisição GET e a palavra-chave await antes do método axios.get. Isso permitirá que você escreva código assíncrono de forma síncrona e atribua o objeto response a uma variável. Você pode então usar o bloco try/catch para lidar com quaisquer erros que possam ocorrer durante a requisição GET.

Aqui está um exemplo de como fazer uma requisição GET em Node.js usando a biblioteca axios:

// Importar a biblioteca axios
const axios = require('axios');

// Fazer a requisição GET usando o método then
axios.get('http://api.openweathermap.org/data/2.5/weather?q=Los%20Angeles&appid=YOUR_API_KEY', {
  headers: {
    'User-Agent': 'Node.js'
  }
}).then((response) => {
// Registrar o código de status e os cabeçalhos
  console.log(`Código de status: ${response.status}`);
  console.log(`Cabeçalhos: ${JSON.stringify(response.headers)}`);

  // Registrar as informações do tempo
  console.log(`Cidade: ${response.data.name}`);
  console.log(`Temperatura: ${response.data.main.temp}`);
  console.log(`Descrição: ${response.data.weather[0].description}`);
}).catch((error) => {
  // Registrar a mensagem de erro e o código
  console.log(`Mensagem de erro: ${error.message}`);
  console.log(`Código de erro: ${error.code}`);

  // Registrar o status e os dados da resposta se disponíveis
  if (error.response) {
    console.log(`Status da resposta: ${error.response.status}`);
    console.log(`Dados da resposta: ${JSON.stringify(error.response.data)}`);
  }

  // Registrar o método e o caminho da requisição se disponíveis
  if (error.request) {
    console.log(`Método da requisição: ${error.request.method}`);
    console.log(`Caminho da requisição: ${error.request.path}`);
  }
});

// Fazer a requisição GET usando a sintaxe async/await
async function getWeather() {
  try {
    // Aguardar a requisição GET e atribuir o objeto de resposta a uma variável
    const response = await axios.get('http://api.openweathermap.org/data/2.5/weather?q=Los%20Angeles&appid=YOUR_API_KEY', {
      headers: {
        'User-Agent': 'Node.js'
      }
    });

    // Registrar o código de status e os cabeçalhos
    console.log(`Código de status: ${response.status}`);
    console.log(`Cabeçalhos: ${JSON.stringify(response.headers)}`);

    // Registrar as informações do tempo
    console.log(`Cidade: ${response.data.name}`);
    console.log(`Temperatura: ${response.data.main.temp}`);
    console.log(`Descrição: ${response.data.weather[0].description}`);
  } catch (error) {
    // Registrar a mensagem de erro e o código
    console.log(`Mensagem de erro: ${error.message}`);
    console.log(`Código de erro: ${error.code}`);

    // Registrar o status e os dados da resposta se disponíveis
    if (error.response) {
      console.log(`Status da resposta: ${error.response.status}`);
      console.log(`Dados da resposta: ${JSON.stringify(error.response.data)}`);
    }

    // Registrar o método e o caminho da requisição se disponíveis
    if (error.request) {
      console.log(`Método da requisição: ${error.request.method}`);
      console.log(`Caminho da requisição: ${error.request.path}`);
    }
  }
}

// Chamar a função getWeather
getWeather();

Como Lidar com os Dados da Resposta em Node.js?

Assim que você faz uma requisição GET em Node.js e recebe a resposta, pode querer fazer algo com os dados da resposta. Por exemplo, você pode querer exibir os dados no console, salvar os dados em um arquivo, analisar os dados como JSON ou XML, ou usar os dados para algum outro propósito.

Dependendo do tipo e formato dos dados da resposta, você pode precisar usar diferentes métodos e módulos para lidar com os dados. Aqui estão alguns cenários comuns e como lidar com eles:

Como Testar a Requisição HTTP GET do NodeJs Usando Apidog?

Para testar a requisição HTTP GET usando Apidog, você precisa seguir estes passos simples:

  1. Abra o Apidog e clique no botão "Nova Requisição" para criar uma nova requisição.
Selecionar nova requisição

2. Selecione "GET" como o método da requisição.

Selecionar método get

3. Insira a URL do endpoint da API

Inserir a URL da API

Então clique no botão “Enviar” para enviar a requisição para a API.

Enviar a requisição e analisar a resposta

Como você pode ver, o Apidog mostra a você a URL, parâmetros, cabeçalhos e corpo da requisição, e o status, cabeçalhos e corpo da resposta. Você também pode ver o tempo de resposta, tamanho e formato da requisição e resposta, e compará-los com diferentes APIs web.

Conclusão

Neste post do blog, eu mostrei como fazer requisições GET em Node.js usando o módulo http e a biblioteca axios. Eu também mostrei como lidar com os dados da resposta em diferentes formatos e cenários. Espero que você tenha aprendido algo útil e gostado de ler este post.

Obrigado por ler e boas codificações!

Explore more

Como acessar a API do Claude 3.7 Sonnet e testar usando Apidog

Como acessar a API do Claude 3.7 Sonnet e testar usando Apidog

Se você está empolgado com o último lançamento da Anthropic, Claude 3.7 Sonnet, e quer explorar suas capacidades através da API enquanto o testa com o Apidog, você está no lugar certo. 💡Antes de começarmos, deixe-me fazer uma rápida observação: baixe o Apidog gratuitamente hoje e otimize seu processo de teste de API, especialmente para explorar os poderosos recursos do Claude 3.7 Sonnet—perfeito para desenvolvedores que desejam testar modelos de IA de ponta como este!botão Vamos começar com a

25 fevereiro 2025

Como passar o x-API-key no cabeçalho?

Como passar o x-API-key no cabeçalho?

Desvende os segredos da segurança eficaz de APIs, dominando como passar x-API-key nos cabeçalhos. Este guia abrangente revelará a importância desse processo e como ferramentas como o Apidog podem facilitar seus esforços. Continue lendo para garantir que suas interações com a API permaneçam seguras!

12 agosto 2024

Como corrigir o erro HTTP 405 Método Não Permitido no Postman

Como corrigir o erro HTTP 405 Método Não Permitido no Postman

O código de erro HTTP 405 ocorre quando você tenta acessar um servidor usando uma chave de API ou token de acesso inválido ou ausente. Neste artigo, veremos mais sobre o erro 405 e como corrigi-lo.

11 agosto 2024

Pratique o design de API no Apidog

Descubra uma forma mais fácil de construir e usar APIs