Avatar ·

Como fazer uma requisição HTTP em JavaScript?

Olá a todos! Por favor, me digam como executar corretamente uma requisição HTTP no Node.js (versão 18).

Estou escrevendo um pequeno script para fazer parsing de dados de uma API pública. Preciso enviar uma requisição GET e obter uma resposta JSON. Tentei usar o módulo nativo http, mas me deparei com um problema: os dados chegam em partes, e é preciso coletá-los manualmente através dos eventos data e end. Isso parece inconveniente e verboso.

const http = require('http');\n\nhttp.get('http://example.com/api/data', (res) => {\n  let data = '';\n  res.on('data', (chunk) => { data += chunk; });\n  res.on('end', () => {\n    console.log(JSON.parse(data));\n  });\n});

Ouvi dizer que existem bibliotecas como axios ou node-fetch, mas gostaria de entender qual abordagem é considerada padrão no Node.js moderno? É necessário instalar pacotes de terceiros, ou existe uma solução mais elegante usando apenas Node puro?

Espero uma resposta completa.