Node.js'de GET istekleri nasıl yapacağınızı öğrenmek ister misiniz? Eğer evet ise, doğru yerdesiniz. Bu blog yazısında, Node.js'de GET istekleri yapmak için yerleşik http
modülünü ve popüler axios
kütüphanesini nasıl kullanacağınızı göstereceğim. Ayrıca GET isteklerinin ne olduğunu, neden önemli olduklarını ve yanıt verilerini nasıl işleyeceğinizi açıklayacağım. Bu yazının sonunda, Node.js'de bir profesyonel gibi GET istekleri yapabileceksiniz.
GET İsteği Nedir?
GET isteği, en yaygın HTTP istekleri türlerinden biridir. HTTP, web tarayıcıları ve web sunucuları arasındaki iletişim için standart protokol olan Hypertext Transfer Protocol'ün kısaltmasıdır. HTTP istekleri, web tarayıcılarının web sunucularına veri istemek veya göndermek için gönderdiği mesajlardır. HTTP yanıtları, web sunucularının istenen verileri sağlamak veya gönderimi onaylamak için web tarayıcılarına geri gönderdiği mesajlardır.
GET isteği, web sunucusundan belirli bir kaynağı geri göndermesini isteyen bir HTTP isteği türüdür. Örneğin, web tarayıcınıza bir URL yazdığınızda, o URL ile ilişkili web sayfasını size göndermesi için web sunucusuna bir GET isteği yapıyorsunuz. Bir GET isteği, istenen kaynağı daha fazla bilgi veya filtrelemek için anahtar-değer çiftleri olan bazı sorgu parametrelerini de içerebilir. Örneğin, Google'da bir şey aradığınızda, arama teriminizi, dilinizi ve diğer seçeneklerinizi belirten bazı sorgu parametreleriyle Google web sunucusuna bir GET isteği yapıyorsunuz.
GET İstekleri Neden Önemlidir?
GET istekleri, web sunucularından veri almanın birincil yolu oldukları için önemlidir. HTML, JSON, XML, resimler, videolar ve daha fazlası gibi çeşitli veri türlerine erişmek için GET isteklerini kullanabilirsiniz. Ayrıca, diğer web uygulamalarından veri ve hizmetlere erişmenizi sağlayan arayüzler olan web API'leriyle etkileşim kurmak için GET isteklerini kullanabilirsiniz. Örneğin, OpenWeatherMap API'sinden hava durumu bilgilerini almak, IMDb API'sinden film bilgilerini almak veya Dog API'sinden köpek resimleri almak için GET isteklerini kullanabilirsiniz.
GET istekleri, kullanımı ve test edilmesi kolay oldukları için de önemlidir. Herhangi bir özel araç veya kütüphane olmadan, herhangi bir web tarayıcısını kullanarak GET istekleri yapabilirsiniz. Ayrıca, farklı parametreler ve başlıklarla GET istekleri yapmak ve test etmek için Postman veya Apidog gibi araçları kullanabilirsiniz. Ayrıca, tarayıcının geliştirici araçlarını veya aracın arayüzünü kullanarak yanıt verilerini ve başlıklarını inceleyebilirsiniz.
NodeJs Nedir?
Node.js, JavaScript kodunu bir web tarayıcısının dışında çalıştırmanıza olanak tanıyan bir JavaScript çalışma zamanı ortamıdır. Node.js, Google Chrome V8 JavaScript motorunu temel alır ve özellikle veri yoğun ve gerçek zamanlı uygulamalar olmak üzere web uygulamaları oluşturmak için kullanılır. Node.js ayrıca projelerinize işlevsellik eklemek için kullanabileceğiniz geniş bir modül ve paket kütüphanesine sahiptir. Node.js'nin bazı faydaları şunlardır:
- Asenkron ve olay odaklı doğası sayesinde hızlı ve ölçeklenebilirdir.
- Çapraz platform ve açık kaynaklıdır, yani çeşitli işletim sistemlerinde çalıştırabilir ve gelişimine katkıda bulunabilirsiniz.
- Web uygulamanızın hem ön hem de arka ucunda aynı dili kullanabildiğiniz için tutarlı ve birleştirilmiştir.

http
Modülünü Kullanarak Node.js'de GET İsteği Nasıl Yapılır?
Node.js, JavaScript kodunu web tarayıcısının dışında çalıştırmanıza olanak tanıyan bir JavaScript çalışma zamanı ortamıdır. Node.js genellikle web sunucuları, web uygulamaları ve web API'leri oluşturmak için kullanılır. Node.js ayrıca, HTTP istekleri ve yanıtları yapmanızı sağlayan yerleşik bir http
modülü sağlar.
http
modülünü kullanarak Node.js'de bir GET isteği yapmak için şu adımları izlemeniz gerekir:
require
işlevini kullanarakhttp
modülünü içe aktarın.- Ana bilgisayar adı, bağlantı noktası, yol ve başlıklar gibi GET isteği hakkında bilgileri içeren bir
options
nesnesi oluşturun. - GET isteğini yapmak için
http.get
yöntemini kullanın,options
nesnesini ilk argüman ve bir geri çağırma işlevini ikinci argüman olarak geçirin. Geri çağırma işlevi, yanıt alındığında yürütülecek ve parametresi olarak birresponse
nesnesine sahip olacaktır. - Yanıt verilerini ve başlıklarını işlemek için
response
nesnesini kullanın.response
nesnesi,ReadableStream
arabirimini uygulayanhttp.IncomingMessage
sınıfının bir örneğidir. Bu,response
nesnesini bir veri akışı olarak kullanabileceğiniz vedata
,end
veerror
gibi olayları dinleyebileceğiniz anlamına gelir. Ayrıca, yanıtın durum kodunu almak içinresponse.statusCode
özelliğini ve yanıtın başlıklarını almak içinresponse.headers
özelliğini kullanabilirsiniz. response
nesnesi için olay dinleyicileri kaydetmek içinresponse.on
yöntemini kullanın. Örneğin, bir veri parçası alındığında yayılacak olandata
olayını dinlemek içinresponse.on('data', callback)
yöntemini kullanabilirsiniz. Geri çağırma işlevi, parametresi olarak bir veri arabelleği olan birchunk
nesnesine sahip olacaktır. Arabelleği bir dizeye dönüştürmek ve tüm yanıt verilerini depolamak için bir değişkene eklemek içinchunk.toString()
yöntemini kullanabilirsiniz. Ayrıca, yanıt tamamlandığında yayılacak olanend
olayını dinlemek içinresponse.on('end', callback)
yöntemini kullanabilirsiniz. Geri çağırma işlevi herhangi bir parametreye sahip olmayacaktır ve günlük kaydı veya yanıt verilerini ayrıştırma gibi herhangi bir son eylemi gerçekleştirmek için kullanabilirsiniz. Ayrıca, yanıt sırasında bir hata oluştuğunda yayılacak olanerror
olayını dinlemek içinresponse.on('error', callback)
yöntemini kullanabilirsiniz. Geri çağırma işlevi, parametresi olarak birerror
nesnesine sahip olacaktır ve hatayı, örneğin günlük kaydı veya fırlatma gibi işlemek için kullanabilirsiniz.
İşte http
modülünü kullanarak Node.js'de bir GET isteği yapmaya bir örnek:
// http modülünü içe aktar
const http = require('http');
// Bir seçenek nesnesi oluştur
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'
}
};
// GET isteğini yap
http.get(options, (response) => {
// Yanıt verilerini depolamak için bir değişken başlat
let data = '';
// Veri olayını dinle
response.on('data', (chunk) => {
// Parçayı veri değişkenine ekle
data += chunk.toString();
});
// Son olayını dinle
response.on('end', () => {
// Durum kodunu ve başlıkları kaydet
console.log(`Durum kodu: ${response.statusCode}`);
console.log(`Başlıklar: ${JSON.stringify(response.headers)}`);
// Verileri JSON olarak ayrıştır
const weather = JSON.parse(data);
// Hava durumu bilgilerini kaydet
console.log(`Şehir: ${weather.name}`);
console.log(`Sıcaklık: ${weather.main.temp}`);
console.log(`Açıklama: ${weather.weather[0].description}`);
});
// Hata olayını dinle
response.on('error', (error) => {
// Hatayı fırlat
throw error;
});
});
axios
Kütüphanesini Kullanarak Node.js'de GET İsteği Nasıl Yapılır?
http
modülü, HTTP istekleri ve yanıtları yapmak için temel işlevsellik sağlayan düşük seviyeli bir modüldür. Ancak, daha üst düzey ve kullanıcı dostu bir modül kullanmak istiyorsanız, axios
kütüphanesini kullanabilirsiniz. Axios, vaatleri ve async/await sözdizimini kullanarak HTTP istekleri yapmanıza ve yanıtları işlemenize olanak tanıyan popüler ve güçlü bir kütüphanedir. Axios ayrıca, yakalayıcılar, dönüştürücüler, zaman aşımı, iptal belirteçleri ve daha fazlası gibi özellikleri de destekler.
axios
kütüphanesini kullanarak Node.js'de bir GET isteği yapmak için şu adımları izlemeniz gerekir:
npm
komutunu kullanarakaxios
kütüphanesini yükleyin:npm install axios
.require
işlevini kullanarakaxios
kütüphanesini içe aktarın.- GET isteğini yapmak için
axios.get
yöntemini kullanın, kaynağın URL'sini ilk argüman ve isteğe bağlı birconfig
nesnesini ikinci argüman olarak geçirin.config
nesnesi, başlıklar, parametreler, zaman aşımı ve daha fazlası gibi GET isteği hakkında bilgiler içerebilir.axios.get
yöntemi, birresponse
nesnesine çözülecek veya birerror
nesnesine reddedilecek bir vaat döndürecektir. - Çözülen vaadi işlemek için
then
yöntemini kullanın ve ilk argüman olarak bir geri çağırma işlevi geçirin. Geri çağırma işlevi, yanıt verilerini, durumunu, başlıklarını ve daha fazlasını içeren birresponse
nesnesine sahip olacaktır. Yanıt verilerine erişmek içinresponse.data
özelliğini ve yanıtın durum koduna erişmek içinresponse.status
özelliğini kullanabilirsiniz. Ayrıca, reddedilen vaadi işlemek içincatch
yöntemini kullanabilir ve ilk argüman olarak bir geri çağırma işlevi geçirebilirsiniz. Geri çağırma işlevi, hata mesajını, kodunu, isteğini ve yanıtını içeren birerror
nesnesine sahip olacaktır.error.response
özelliğini yanıt nesnesine veerror.request
özelliğini istek nesnesine erişmek için kullanabilirsiniz. - Alternatif olarak, GET isteğini yapmak ve yanıtı işlemek için
async/await
sözdizimini kullanabilirsiniz. Bunu yapmak için, GET isteğini içeren işlevin önüneasync
anahtar sözcüğünü veaxios.get
yönteminin önüneawait
anahtar sözcüğünü kullanmanız gerekir. Bu, asenkron kodu senkron bir şekilde yazmanıza veresponse
nesnesini bir değişkene atamanıza olanak tanır. Daha sonra, GET isteği sırasında oluşabilecek hataları işlemek içintry/catch
bloğunu kullanabilirsiniz.
İşte axios
kütüphanesini kullanarak Node.js'de bir GET isteği yapmaya bir örnek:
// axios kütüphanesini içe aktar
const axios = require('axios');
// then yöntemi kullanılarak GET isteği yap
axios.get('http://api.openweathermap.org/data/2.5/weather?q=Los%20Angeles&appid=YOUR_API_KEY', {
headers: {
'User-Agent': 'Node.js'
}
}).then((response) => {
// Durum kodunu ve başlıkları kaydet
console.log(`Durum kodu: ${response.status}`);
console.log(`Başlıklar: ${JSON.stringify(response.headers)}`);
// Hava durumu bilgilerini kaydet
console.log(`Şehir: ${response.data.name}`);
console.log(`Sıcaklık: ${response.data.main.temp}`);
console.log(`Açıklama: ${response.data.weather[0].description}`);
}).catch((error) => {
// Hata mesajını ve kodunu kaydet
console.log(`Hata mesajı: ${error.message}`);
console.log(`Hata kodu: ${error.code}`);
// Yanıt durumunu ve verilerini (varsa) kaydet
if (error.response) {
console.log(`Yanıt durumu: ${error.response.status}`);
console.log(`Yanıt verileri: ${JSON.stringify(error.response.data)}`);
}
// İstek yöntemini ve yolunu (varsa) kaydet
if (error.request) {
console.log(`İstek yöntemi: ${error.request.method}`);
console.log(`İstek yolu: ${error.request.path}`);
}
});
// async/await sözdizimini kullanarak GET isteği yap
async function getWeather() {
try {
// GET isteğini bekle ve yanıt nesnesini bir değişkene ata
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'
}
});
// Durum kodunu ve başlıkları kaydet
console.log(`Durum kodu: ${response.status}`);
console.log(`Başlıklar: ${JSON.stringify(response.headers)}`);
// Hava durumu bilgilerini kaydet
console.log(`Şehir: ${response.data.name}`);
console.log(`Sıcaklık: ${response.data.main.temp}`);
console.log(`Açıklama: ${response.data.weather[0].description}`);
} catch (error) {
// Hata mesajını ve kodunu kaydet
console.log(`Hata mesajı: ${error.message}`);
console.log(`Hata kodu: ${error.code}`);
// Yanıt durumunu ve verilerini (varsa) kaydet
if (error.response) {
console.log(`Yanıt durumu: ${error.response.status}`);
console.log(`Yanıt verileri: ${JSON.stringify(error.response.data)}`);
}
// İstek yöntemini ve yolunu (varsa) kaydet
if (error.request) {
console.log(`İstek yöntemi: ${error.request.method}`);
console.log(`İstek yolu: ${error.request.path}`);
}
}
}
// getWeather işlevini çağır
getWeather();
Node.js'de Yanıt Verileri Nasıl İşlenir?
Node.js'de bir GET isteği yaptıktan ve yanıtı aldıktan sonra, yanıt verileriyle bir şeyler yapmak isteyebilirsiniz. Örneğin, verileri konsolda görüntülemek, verileri bir dosyaya kaydetmek, verileri JSON veya XML olarak ayrıştırmak veya verileri başka bir amaç için kullanmak isteyebilirsiniz.
Yanıt verilerinin türüne ve biçimine bağlı olarak, verileri işlemek için farklı yöntemler ve modüller kullanmanız gerekebilir. İşte bazı yaygın senaryolar ve bunların nasıl işleneceği:
- Yanıt verileri bir dize ise, verileri konsolda görüntülemek için
console.log
yöntemini veya verileri bir dosyaya kaydetmek içinfs.writeFile
yöntemini kullanabilirsiniz.fs
modülü, Node.js'de dosya sistemiyle çalışmanıza olanak tanıyan yerleşik bir modüldür.require
işlevini kullanarakfs
modülünü içe aktarabilir ve dosya adını, verileri ve bir geri çağırma işlevini argüman olarak geçirerek verileri bir dosyaya yazmak içinfs.writeFile
yöntemini kullanabilirsiniz. Geri çağırma işlevi, parametresi olarak birerror
nesnesine sahip olacaktır ve dosya yazma işlemi sırasında oluşabilecek hataları işlemek için kullanabilirsiniz. - Yanıt verileri bir arabellek ise, arabelleği bir dizeye dönüştürmek için
buffer.toString
yöntemini kullanabilir ve ardından verileri görüntülemek veya kaydetmek için yukarıdaki yöntemleri kullanabilirsiniz. Bir arabellek, bir bayt dizisini temsil eden bir ikili veri türüdür. Arabellekler genellikle resimler, videolar veya sıkıştırılmış dosyalar gibi ikili verileri işlemek için kullanılır. Bir arabelleği bir dizeye dönüştürmek içinbuffer.toString
yöntemini kullanabilir ve dizenin karakter kodlamasını belirtmek için isteğe bağlı bir kodlama argümanı geçirebilirsiniz. Varsayılan kodlama, metin verileri için en yaygın kodlama olanutf8
'dir. - Yanıt verileri JSON ise, verileri bir JavaScript nesnesi olarak ayrıştırmak için
JSON.parse
yöntemini kullanabilir ve ardından veriye erişmek ve veriyi işlemek için nesne özelliklerini ve yöntemlerini kullanabilirsiniz. JSON, veri alışverişi ve depolama için standart bir biçim olan JavaScript Object Notation'ın kısaltmasıdır. JSON verileri, küme parantezleri ile kapatılmış anahtar-değer çiftlerinden ve köşeli parantezlerle kapatılmış dizilerden oluşan belirli bir sözdizimini izleyen bir dizedir. Bir JSON dizesini bir JavaScript nesnesi olarak ayrıştırmak içinJSON.parse
yöntemini kullanabilir ve JSON dizesini argüman olarak geçirebilirsiniz. Yöntem, diğer herhangi bir nesne gibi kullanabileceğiniz bir JavaScript nesnesi döndürecektir. - Yanıt verileri XML ise, verileri bir JavaScript nesnesi olarak ayrıştırmak için
xml2js
kütüphanesini kullanabilir ve ardından veriye erişmek ve veriyi işlemek için nesne özelliklerini ve yöntemlerini kullanabilirsiniz. XML, veri alışverişi ve depolama için başka bir standart biçim olan Extensible Markup Language'ın kısaltmasıdır. XML verileri, etiketlerle kapatılmış öğelerden, tırnak işaretleriyle kapatılmış özniteliklerden ve metin içeriğinden oluşan belirli bir sözdizimini izleyen bir dizedir.xml2js
kütüphanesi, XML verilerini JavaScript nesnelerine ve tersi yönde dönüştürmenize olanak tanıyan üçüncü taraf bir kütüphanedir.npm
komutunu kullanarakxml2js
kütüphanesini yükleyebilirsiniz:npm install xml2js
.require
işlevini kullanarakxml2js
kütüphanesini içe aktarabilir ve XML dizesini bir JavaScript nesnesi olarak ayrıştırmak içinxml2js.parseString
yöntemini kullanabilir, XML dizesini ve bir geri çağırma işlevini argüman olarak geçirebilirsiniz. Geri çağırma işlevi, parametreleri olarak birerror
nesnesine ve birresult
nesnesine sahip olacaktır ve bunları herhangi bir hatayı işlemek veya ayrıştırılmış nesneye erişmek için kullanabilirsiniz.
Apidog Kullanarak NodeJs HTTP GET İsteği Nasıl Test Edilir?
Apidog kullanarak HTTP Get isteğini test etmek için şu basit adımları izlemeniz gerekir:
- Apidog'u açın ve yeni bir istek oluşturmak için "Yeni İstek" düğmesine tıklayın.

2. İsteğin yöntemi olarak "GET"i seçin.

3. API uç noktasının URL'sini girin

Ardından, isteği API'ye göndermek için "Gönder" düğmesine tıklayın.

Gördüğünüz gibi, Apidog size isteğin URL'sini, parametrelerini, başlıklarını ve gövdesini ve yanıtın durumunu, başlıklarını ve gövdesini gösterir. Ayrıca, isteğin ve yanıtın yanıt süresini, boyutunu ve biçimini görebilir ve bunları farklı web API'leriyle karşılaştırabilirsiniz.
Sonuç
Bu blog yazısında, http
modülünü ve axios
kütüphanesini kullanarak Node.js'de GET istekleri yapmayı gösterdim. Ayrıca, yanıt verilerini farklı biçimlerde ve senaryolarda nasıl işleyeceğinizi de gösterdim. Umarım faydalı bir şeyler öğrenmiş ve bu yazıyı okumaktan keyif almışsınızdır.
Okuduğunuz için teşekkür eder ve mutlu kodlamalar dilerim!