Request – Requisições HTTP de forma rápida e simples

request

O Request é um pacote que permite que façamos requisições HTTP. Uma coisa interessante sobre ele é que é uma ferramenta muito simples, conseguimos fazer requisições em algum ambiente ou servidor HTTP de uma forma rápida.

Primeiramente vamos instalar:

npm install request

Agora vamos criar um novo  arquivo e fazer um require no nosso request e pegar o site da UOL por exemplo:

const request = require ('request')

request('http://www.uol.com.br', function (err, res, body){

if(!err && res.statusCode === 200){

console.log(body)

}

}

Então se não retornar nenhum erro e a resposta for um http 200, ele retorna o body, que é um parâmetro da nossa function.

Ao rodar o código, perceba que retornará todo o HTML da página principal do UOL, isso é útil, pois sempre que quisermos consumir uma API, podemos usar o request, lembrando que ele permite outros métodos HTTP também, como um post e principalmente para baixar dados.

Vamos supor que eu quisesse salvar o site da UOL (pode ser um site, um arquivo, uma imagem, mas vou salvar o site todo para demonstrar):

const request = require ('request')

const fs = require('fs')

request('http://www.uol.com.br').pipe(fs.createWriteStream('home.html'))

(Lembrando que o ‘fs’ já faz parte do core do Node, então não precisamos instalar nada). Então ele vai ligar o output stream do request com o writeStream do ‘fs’ que acabamos de criar, no fim das contas ele vai salvar em um home.html.

Um caso de uso que eu já fiz com esse pacote foi a seguinte: eu tinha um serviço em que agregava os logs entre as minhas aplicações, então ela estava distribuída em servidores distintos e esse serviço que utilizava o request para baixar os arquivos de log e depois de baixado ele fazia o processamento das informações. Isso era bastante útil para poder importar os dados, mas lembrando que podemos usá-lo para muitas outras coisas além disso.

Deixe suas dúvidas e sugestões nos comentários. Curta o DevPleno no Facebookinscreva-se no canal e cadastre seu e-mail para não perder as atualizações.