Apidog

Plataforma Colaborativa All-in-one para Desenvolvimento de API

Design de API

Documentação de API

Depuração de API

Mock de API

Testes Automatizados de API

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

Updated on novembro 29, 2024

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.
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:

  • 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étodo fs.writeFile para salvar os dados em um arquivo. O módulo fs é um módulo embutido que permite trabalhar com o sistema de arquivos em Node.js. Você pode importar o módulo fs usando a função require, e usar o método fs.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 objeto error 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étodo buffer.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étodo JSON.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 biblioteca xml2js é uma biblioteca de terceiros que permite converter dados XML em objetos JavaScript e vice-versa. Você pode instalar a biblioteca xml2js usando o comando npm: npm install xml2js. Você pode importar a biblioteca xml2js usando a função require, e usar o método xml2js.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 objeto error e um objeto result 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:

  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!

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

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

@apidog

fevereiro 25, 2025

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

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!

Miguel Oliveira

agosto 12, 2024

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

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.

Miguel Oliveira

agosto 11, 2024