HTTP isteklerinin nasıl yapılacağını öğrenmek, her çözümün öncekinden daha verimli olduğunu iddia ettiği düzinelerce kitaplık olduğu için bunaltıcı gelebilir. Bazı kitaplıklar çapraz platform desteği sunarken diğerleri paket boyutuna veya geliştirici deneyimine odaklanır. Bu yazıda, Node.js'de bu temel işlevi elde etmenin en popüler beş yolunu keşfedeceğiz.

Makinenizde npm ve Node.js'nin kurulu olduğundan emin olun ve hazırsınız!

Standard Library yani standart kütaplık, http modül ile donatılmış varsayılan olarak gelir. Bu modül, harici paketlerle toplu eklemeye gerek kalmadan bir HTTP isteği yapmak için kullanılabilir. Bununla birlikte, modül düşük seviyeli olduğundan, en geliştirici dostu değildir. Ek olarak, HTTP istekleri için zaman uyumsuz / bekleme özelliği bu kitaplıkla kullanılamadığından, veri parçalamak için zaman uyumsuz akışlar kullanmanız gerekir. Yanıt verilerinin daha sonra manuel olarak ayrıştırılması gerekecektir.

Aşağıdaki kod ile , Yüzüklerin Efendisi serisindeki kitapların adlarını alma talebinde bulunmak için standart http kitaplığın nasıl kullanılacağını göreceğiz Method :  GET:

const https = require('https');

https.get('https://the-one-api.dev/v2/book?api_key=MY_KEY', (resp) => {
  let data = '';

  // a data chunk has been received.
  resp.on('data', (chunk) => {
    data += chunk;
  });

  // complete response has been received.
  resp.on('end', () => {
    console.log(JSON.parse(data).name);
  });

}).on("error", (err) => {
  console.log("Error: " + err.message);
});

SuperAgent , Node.js ve tarayıcılarda AJAX istekleri yapmak için kullanılabilen küçük bir HTTP istek kitaplığıdır. SuperAgent'ın önbelleğe almayı önlemek, sunucu yüklerini dönüştürmek veya URL'leri ön ek veya son ek gibi şeyleri başarmak için kullanılabilen düzinelerce eklentiye sahip olması oldukça etkileyicidir. Alternatif olarak, kendi eklentinizi yazarak işlevselliği genişletebilirsiniz. SuperAgent ayrıca JSON verilerini sizin için rahatlıkla ayrıştırır.

SuperAgent'ı npm'den yüklemek için terminalinize aşağıdaki komutu girin:

npm install superagent --save

Aşağıdaki kod parçacığı, istek yapmak için SuperAgent'ın nasıl kullanılacağını göstermektedir :

const superagent = require('superagent');

(async () => {
  try {
    const queryArguments = {
      api_key: 'MY_KEY'
    }

    const response = await superagent.get('https://the-one-api.dev/v2/book').query(queryArguments)
    console.log(response.body.name);
  } catch (error) {
    console.log(error.response.body);
  }
})();

Axios , tarayıcı ve Node.js için vaat tabanlı bir HTTP istemcisidir. SuperAgent gibi, JSON yanıtlarını otomatik olarak uygun şekilde ayrıştırır. Onu daha da farklı kılan şey, eşzamanlı isteklerde bulunma kabiliyetidir axios.all, örneğin bu, Yüzüklerin Efendisi filmlerinden ve kitaplarından aynı anda alıntılar almanın etkili bir yolu olabilir .

Axios'u npm'den kurmak için terminalinize aşağıdaki komutu girin:

npm install axios --save

Aşağıdaki kod parçacığı, bir istekte bulunmak için Axios'un nasıl kullanılacağını göstermtkedir :

const axios = require('axios');

(async () => {
  try {
    const response = await axios.get('https://the-one-api.dev/v2/book?api_key=MY_KEY')
    console.log(response.data.name);
  } catch (error) {
    console.log(error.response.body);
  }
})();

Node Fetch , Fetch API'sini Node.js'ye getiren hafif bir modüldür. Fetch ile (tarayıcıda veya Node Fetch aracılığıyla) , okunabilir akışı JSON'a dönüştürmeyi biraz daha hoş hale getirmek için .then ve await sözdizimini karıştırabilirsiniz; bu nedenle data, aşağıdaki kod parçasında gösterildiği gibi, garip bir orta değişkene ihtiyaç duymadan JSON'a sahiptir. Ek olarak, yeniden yönlendirme sınırı, yanıt boyutu sınırı, sorun giderme için açık hatalar gibi kullanışlı uzantıların Node Fetch ile kullanılabileceğini unutmayın.

Node Fetch'i npm'den kurmak için terminalinize aşağıdaki komutu girin:

npm install node-fetch --save

Aşağıdaki kod pasajı, bir istekte bulunmak için Node Fetch'in nasıl kullanılacağını göstermektedir. :

const fetch = require('node-fetch');

(async () => {
  try {

    const response = await fetch('https://the-one-api.dev/v2/book?api_key=MY_KEY')
    const json = await response.json()

    console.log(json.name);
  } catch (error) {
    console.log(error.response.body);
  }
})();

Got , Node.js için başka bir sezgisel ve güçlü HTTP istek kitaplığıdır. Başlangıçta popüler İstek (artık kullanımdan kaldırıldı) paketine hafif bir alternatif olarak oluşturuldu . Got'un diğer kitaplıklara kıyasla nasıl olduğunu görmek için bu ayrıntılı tabloya bakabilirsiniz.

Axios ve SuperAgent'ın aksine, Got, JSON'u varsayılan olarak ayrıştırmaz. { json: true } Bu işlevi elde etmek için aşağıdaki kod parçacığına bağımsız değişken olarak eklendiğini unutmayın.

Got from npm'yi yüklemek için terminalinize aşağıdaki komutu girin:

npm install got --save

Aşağıdaki kod parçacığı, bir istekte bulunmak için Got'un nasıl kullanılacağını gösterir:

const got = require('got');

(async () => {
  try {
    const response = await got('https://the-one-api.dev/v2/book?api_key=MY_KEY', { json: true });
    console.log(response.body.name);
  } catch (error) {
    console.log(error.response.body);
  }
})();