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:
- É rápido e escalável, graças à sua natureza assíncrona e orientada a eventos.
- É multiplataforma e de código aberto, o que significa que você pode executá-lo em vários sistemas operacionais e contribuir para seu desenvolvimento.
- É consistente e unificado, pois você pode usar a mesma linguagem tanto para o front-end quanto para o back-end da sua aplicação web.

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:
- Importe o módulo
http
usando a funçãorequire
. - 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. - Use o método
http.get
para fazer a requisição GET, passando o objetooptions
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 objetoresponse
como seu parâmetro. - Use o objeto
response
para lidar com os dados e cabeçalhos da resposta. O objetoresponse
é uma instância da classehttp.IncomingMessage
, que implementa a interfaceReadableStream
. Isso significa que você pode usar o objetoresponse
como um fluxo de dados e escutar eventos comodata
,end
eerror
. Você também pode usar a propriedaderesponse.statusCode
para obter o código de status da resposta, e a propriedaderesponse.headers
para obter os cabeçalhos da resposta. - Use o método
response.on
para registrar ouvintes de eventos para o objetoresponse
. Por exemplo, você pode usar o métodoresponse.on('data', callback)
para escutar o eventodata
, que será emitido quando um pedaço de dados for recebido. A função de callback terá um objetochunk
como seu parâmetro, que é um buffer de dados. Você pode usar o métodochunk.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étodoresponse.on('end', callback)
para escutar o eventoend
, 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étodoresponse.on('error', callback)
para escutar o eventoerror
, que será emitido quando um erro ocorrer durante a resposta. A função de callback terá um objetoerror
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:
- Instale a biblioteca
axios
usando o comandonpm
:npm install axios
. - Importe a biblioteca
axios
usando a funçãorequire
. - Use o método
axios.get
para fazer a requisição GET, passando a URL do recurso como o primeiro argumento e um objetoconfig
opcional como o segundo argumento. O objetoconfig
pode conter informações sobre a requisição GET, como os cabeçalhos, parâmetros, timeout e mais. O métodoaxios.get
retornará uma promessa, que será resolvida para um objetoresponse
ou rejeitada para um objetoerror
. - 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 objetoresponse
como seu parâmetro, que contém os dados da resposta, status, cabeçalhos e mais. Você pode usar a propriedaderesponse.data
para acessar os dados da resposta e a propriedaderesponse.status
para acessar o código de status da resposta. Você também pode usar o métodocatch
para lidar com a promessa rejeitada, passando uma função de callback como o primeiro argumento. A função de callback terá um objetoerror
como seu parâmetro, que contém a mensagem de erro, código, requisição e resposta. Você pode usar a propriedadeerror.response
para acessar o objeto de resposta e a propriedadeerror.request
para acessar o objeto de requisição. - 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-chaveasync
antes da função que contém a requisição GET e a palavra-chaveawait
antes do métodoaxios.get
. Isso permitirá que você escreva código assíncrono de forma síncrona e atribua o objetoresponse
a uma variável. Você pode então usar o blocotry/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:
- Se os dados da resposta forem uma string, você pode simplesmente usar o método
console.log
para exibir os dados no console, ou o métodofs.writeFile
para salvar os dados em um arquivo. O módulofs
é um módulo embutido que permite trabalhar com o sistema de arquivos em Node.js. Você pode importar o módulofs
usando a funçãorequire
, e usar o métodofs.writeFile
para gravar dados em um arquivo, passando o nome do arquivo, os dados e uma função de callback como argumentos. A função de callback terá um objetoerror
como seu parâmetro, e você pode usá-lo para lidar com quaisquer erros que possam ocorrer durante o processo de gravação do arquivo. - Se os dados da resposta forem um buffer, você pode usar o método
buffer.toString
para converter o buffer em uma string e, em seguida, usar os mesmos métodos mencionados acima para exibir ou salvar os dados. Um buffer é um tipo de dado binário que representa uma sequência de bytes. Buffers são frequentemente usados para lidar com dados binários, como imagens, vídeos ou arquivos compactados. Você pode usar o métodobuffer.toString
para converter um buffer em uma string, passando um argumento de codificação opcional para especificar a codificação de caractere da string. A codificação padrão éutf8
, que é a codificação mais comum para dados de texto. - Se os dados da resposta forem JSON, você pode usar o método
JSON.parse
para analisar os dados como um objeto JavaScript e, em seguida, usar as propriedades e métodos do objeto para acessar e manipular os dados. JSON significa Notação de Objetos JavaScript, que é um formato padrão para troca e armazenamento de dados. Os dados JSON são uma string que segue uma sintaxe específica, que consiste em pares chave-valor entre chaves, e arrays entre colchetes. Você pode usar o métodoJSON.parse
para analisar uma string JSON como um objeto JavaScript, passando a string JSON como o argumento. O método retornará um objeto JavaScript que você pode usar como qualquer outro objeto. - Se os dados da resposta forem XML, você pode usar a biblioteca
xml2js
para analisar os dados como um objeto JavaScript e, em seguida, usar as propriedades e métodos do objeto para acessar e manipular os dados. XML significa Linguagem de Marcação Extensível, que é outro formato padrão para troca e armazenamento de dados. Os dados XML são uma string que segue uma sintaxe específica, que consiste em elementos entre tags, atributos entre aspas e conteúdo de texto. A bibliotecaxml2js
é uma biblioteca de terceiros que permite converter dados XML em objetos JavaScript e vice-versa. Você pode instalar a bibliotecaxml2js
usando o comandonpm
:npm install xml2js
. Você pode importar a bibliotecaxml2js
usando a funçãorequire
, e usar o métodoxml2js.parseString
para analisar uma string XML como um objeto JavaScript, passando a string XML e uma função de callback como argumentos. A função de callback terá um objetoerror
e um objetoresult
como seus parâmetros, e você pode usá-los para lidar com quaisquer erros ou acessar o objeto analisado.
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:
- Abra o Apidog e clique no botão "Nova Requisição" para criar uma nova requisição.

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

3. Insira a URL do endpoint da API

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

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!