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!
HTTP (The Standard Library) ile HTTP istek gönderme
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);
});
Super Agent ile Node.js'de HTTP istek gönderme
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 ile HTTP istek gönderme
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 ile HTTP istek gönderme
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);
}
})();
Nıde.js Got ile HTTP istek gönderme
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);
}
})();