Node.js Request Kullanımı

Node.js Request Kullanımı

Hepinize merhaba dostlarım :). Bu yazımda sizlere node js programlama dilinde özellikle apiler ile çalışırken sıklıkla kullandığımız bir yapı olan, veya bir url adresi ile çalışacağımız zamanlarda kullanacağımız bir yapı olan request kütüphanesinden bahsedeceğim :). İsmi İngilizce'de aşina olduğumuz bir kelimedir yani istek anlamına gelen bu kelimenin kodlardaki kullanımı da mantıksal olarak bir url adresine istekte bulunmak olarak geçer :). Örnek vermek gerekirse bir api ile uğraşıyorsunuz ve stok apisi olsun bu varsayalım. Sizin bir istek attığınızda ürünlerin ve stok bilgilerinin listelendiği bilgileri çekmek için o adrese browser üzerinden gitmek yerine gelen veriyi request kütüphanesi ile yazıp ekrana bastırmanız fayda sağlayacaktır :). Heyecanlandığınızı seziyorum dostlarım :). Sözü daha fazla uzatmadan konumuza giriş yapalım

Proje Ortamını Oluşturalım

Evet dostlarım :). Artık projemizi oluşturmaya yavaştan yavaştan girişimizi yapalım :). Öncelikle proje dosyamızı açıp termianalimize girelim ve 

npm init

komutumuzu yazalım. Bu kurulumla projemizi npm ile ilişkilendiriyoruz (node.js proje oluşturma yazıma buradan ulaşabilirsiniz). Kodumuzu yazdıktan sonra enter enter yaparak projemizi npm ile iliişkilendiriyoruz dostlarım. Daha sonrasında ise kullanacağımız modülü yükleyelim :)

Request Modülünü Yükleyelim

npm install --save request@2.60.0

şeklinde npm paket yöneticisinden projemize request kütüphanesinin 2.60.0 versiyonunu yüklüyoruz :). Modülümüzü yüklediğimize göre şimdi gelelim bir example.js dosyası oluşturalım. Daha sonra içerisine bu modülümüzü kullanacağımızı söyleyelim. Öncelikle example.js dosyasını oluşturunca içerisine kodlarımızı yazmaya başlayalım

Kodlarımızı Yazmaya Başlayalım

const request = require('request')

Bu kod ile biz javascript dosyamızın içerisinde yani example.js dosyamızın içerisinde request modülümüzü kullanacağımızı ve bu moddülü kullanmamızın gerektiğini söylüyoruz. Daha sonra ise istekte bulunacağımız url adresini belirtiyoruz. Ben örnek olarak bir url oluşturdum yani kendim localhost alanımda bir url ye istek atacağım. Hemen bunu da yazalım

const request = require('request')  // modülümüzü yükledik
const url = "http://127.0.0.1:8000/"  // url adresimizi belirttik

request({
    url : url,
    json : true
},function (err,res,body){
    if (err) throw err
    console.log(body)
})

şimdi diyorsunuz ki hocam çok karmaşık oldu :). Dostlarım sakın gözünüzü korkutmayın olayın aslını anlatacağım size. Öncelikle yukarı kısımlarda example.js dosyamızın içerisinde request modülünü kullanacağımızı ve hangi url adresine istek yapacağımızı belirttik. Bu kısma kadar tamamız. Daha sonra da request methodumuzu açtık. Bu method 2 parametre alıyor:

  1. Parametre: İstek yapacağımız url ve gelecek olan sonucun json tipinde mi gelleceğinin belirtilmesi
  2. Parametre: Bize dönecek olan callback fonksiyon

şeklinde kodlarımızı yazdık şu an. İlk parametrede yazdığımız kısımda şunları diyoruz:

{
    url : url,   // istek yapacağımız url
    json : true   // geri dönecek olan değer json tipinde mi olacak (true ise evet, false ise hayır)
}

şeklinde kodumuzu belirtiyoruz. Daha sonra ise ikinci parametrede yani callback fonksiyon da 3 parametre alıyor. Bunlara bakacak olursak

  1. Parametre: err ----> yani istek esnasında herhangi bir hata oluşursa bize geri dönecek olan parametre
  2. Parametre: res-----> istek sonrasında bize dönecek olan header bilgisi (200,301,500 gibi status kodları)
  3. Parametre: body----> istekten bize gelecek olan cevap (bize dönecek olan içerik) olarak adlandırılır

bu callback fonksiyonların parametrelerini de gördüğümüze göre şimdi gelelim ekranımızda kodlarımızı yavaştan yavaştan çalıştırmaya. Öncelikle fonksiyonumuzda response yani res kısmını  yazdıralım. Bunun için kodlarımızda gelip aşağıdaki gibi bir düzenleme yapıyoruz

const request = require('request')
const url = "http://127.0.0.1:8000/"

request({
    url : url,
    json : true
},function (err,res,body){
    if (err) throw err
    console.log(res)  // header bilgisini alacağız
})

şeklinde console.log() kısmında ekranımıza header bilgisinin bastırılma işlemini ayarlıyoruz. Daha sonra terminalimizi açıp

node example.js

komutumuzu yazıyoruz. Enter tuşuna basar basmaz karşımıza

IncomingMessage {
  _readableState: ReadableState {
    encoding: null,
    [Symbol(kPaused)]: false
  },
  readable: false,
  _events: [Object: null prototype] {
  },
  _eventsCount: 4,
  _maxListeners: undefined,
  socket: Socket {
    connecting: false,
    _hadError: false,
      [Symbol(kPaused)]: false
    },
    readable: false,
    _events: [Object: null prototype] {
      _header: 'GET / HTTP/1.1\r\n' +
        'host: 127.0.0.1:8000\r\n' +
        'accept: application/json\r\n' +
        'Connection: close\r\n' +
.
.
.
.
.
.                 // uzun bir çıktı olduğu için bazı kısımları sildim :)

şeklinde uzunca bir kod çıkacaktır. Burada hangi adrese istek yaptığımız bilgisi, bize geri dönen sonuç, hangi türde bir istek yaptığımız bilgileri vs yer almaktadır :). res kısmında gelen sonuçlar bu kadar. Şimdi ise dostlarım asıl iş yapacağımız kısım yani body kısmını ekranımıza yazdıralım. Bunun için ise ekranımıza gelip

const request = require('request')
const url = "http://127.0.0.1:8000/"

request({
    url : url,
    json : true
},function (err,res,body){
    if (err) throw err
    console.log(body)  // body bilgisini alacağız
})

şeklinde kodlarımızı yazacağız. Değişen kısım dostlarım sadece console.log() kısmıdır zor bir yanı yok :). Bu kısmı ayarladığımıza göre terminal kısmına gelip

node example.js

komutumuzu yazalım. Ben local alanımda programlama dillerini bir diziye aktarıp bunu json olarak ekrana bastırma işlemini ayarlamıştım. Json a döndürmeden direkt olarak diziiyi bastırmaya kalkıştığımda err kısmı yani hata yakalama kısmı çalışacak ve hatayı ekrana bastıracaktır. Bunun sonucunda ise bize aşağıdaki gibi çıktı verecektir.

Array{
    "message": "Array to string conversion",
    "exception": "ErrorException",
    "file": "C:\\Users\\mfati\\OneDrive\\Masa\u00fcst\u00fc\\request\\routes\\web.php",
    "line": 19,
.
.
.

şeklinde ekranımıza bastıracaktır dostlarım. Bu kısımda bize diyor ki "Kardeşim sen bir diziyi string gibi ekrana bastırmaya çalışıyorsun. Bunun uyarısını yapayım aman dikkat et :)" şeklinde bir uyarı veriyor dostlarım. Düzenlemesini ben json a çevirdim şu an ve terminalime gelip tekrardan

node example.js

komutunu yazdığımızda karşımıza çıkacak olan sonuç yani benim programlama dillerinden oluşan dizim aşağıdaki gibi ekrana basılacaktır

[ 'JAVASCRIPT', 'PHP', 'NODE.JS', 'JAVA' ]

şeklinde bir çıktı ekrana basılacaktır. Biz şu an node.js konusunu gördüğümüz için sadece bunun ekrana basılmasını istiyorsak da bu dizinin 3. Elemanı yani 2. Indexini ekrana bastırmamız için kod kısmında gelip

const request = require('request')
const url = "http://127.0.0.1:8000/"

request({
    url : url,
    json : true
},function (err,res,body){
    if (err) throw err
    console.log(body[2])
})

şeklinde kodumuzu düzeltip daha sonra terminalimize gelip

node example.js

yazıp enter a basınca ekranımıza çıkacak olan sonuç

NODE.JS

olacaktır. Olay tamamen basit dostlarım sadece pratik yapmak lazım :)


Eveeet artık bu konumuzda da elimden geldiğğince, dilim döndüğünce node.js programlama dilinde request modülünün kullanımından bahsettim. Umarım faydalı olmuşumdur. Eksik veya Hatalı bir anlatım yapmış isem benimle iletişime geçmekten çekinmeyin :). Başlarda biraz karmaşık veya zor gelebilir dostlarım anlıyorum ben de ilk zamanlar zorlanmıştım. Bunun için yapmanız gereken şey her yazımda da dediğim gibi "İstikrarlı ve Azimli Olmak, Bolca Pratik Yapmaktır :)". Bu dediklerimi hayat felsefeniz yaptığınız sürece başarı sizler için kaçınılmaz olacaktır :)

Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim :)

Muhammed Fatih BAĞCIVAN
Yazar Hakkında

Kendi Halinde Bir Backend Developer

Önceki YazıJavascript Promise Oluşturma ve Kullanma
Sonraki YazıHangi Yazılım Dili Hangi Alanda Kullanılır ?
Yorumlar (0)
Bu Yazıya Ait Hiçbir Yorum Bulunamadı (veya admin onaylamadı). İlk Yorum Yapan Sen Ol
Yorum Yapabilirsiniz