Node.js’de Restful Api Yazmak

Selamlar;

Daha önceki Node.Js nedir makalesinde nodeJS’e giriş yapmıştık. Hatırlayacağınız gibi Javascript kullanarak server side uygulamalar yazabileceğimiz, oluşturduğumuz web uygulamları ve servislerin büyük sayıdaki clientlera minimum kaynak harcıyarak hizmet verebildiği bir platformdur.

Bugün Node.Js’de Restful bir servisin nasıl yazılacağını hep beraber inceleyeceğiz. Kısa da olsa Restful servise değinmek istersek client ile server arasındaki veri alışverişini HTTP protokolü üzerinden sağlıyan, request işlemleri HTTP Methodları ile(POST,PUT,DELETE,GET)  ifade edilen bir yapıdır.

Bu uygulamada Node.Js’de en populer olan frameworklerden Express.js’i kullanacağız. Express.js, HTTP ile yapacağımız işleri kolaylaştıran, post işlemlerinin öncesi ve sonrasında yada authentication ve login işlemlerinde, önceden belirleyeceğimiz tanımlamaların her request’de çalıştırılmasını sağlayan bir yapı oluşturur.

Express.js NPM kullanılarak aşağıdaki gibi indirilebilir.

> npm install express

Aynı zamanda JSON istek yapılan sunucudan gelen JSON data’yı okuyabilmemiz için de body-parser’a ihtiyacımız vardır. NPM ile aşağıdaki komut ile indirilebilir.

> npm install body-parser

 Aşağıda express ve bodyParser  nesneleri tanımlanmıştır. Json data olarak cities nesnesine şehir isimleri ve ait oldukları ülkeler atanmıştır.

Şimdi sıra geldi server’ı 1923 portunda başlatmaya ve express.js üzerinde body-parser’ı çalıştırmaya. Bunun için aşağıdaki kod parçacığı yazılır.

Command satırına aşağıdaki komut yazılır. Ve server başlatılır.

> node server.js

port

Yukarıda görüldüğü gibi server başladı. Ve ilgili log console yazıldı. Şu noktada browser üzerinden bir işlem yapamayız. Herhangi bir endpoint yaratmadık. Aşağıda görüldüğü gibi GET işlemi ile tüm şehirleri listeleyebileceğimiz bir API oluşturulur.

Browser üzerinden http://localhost:1923:api/cities yazdığımız zaman aşağıdaki ekran görüntüsünü alırız.cities

Şimdi sıra geldi yeni bir şehir ekliyeceğimiz API’ye. Bu işlem için POST kullanılacak ve eklenecek olan şehirin var olan listede olup olmadığına bakılılacak. Eğer eklenecek şehir listede var ise “Bu şehir zaten kayıtlı” hata mesajı gönderilecek yok ise yeni şehir cities nesnesine eklenecek. İlgili kod aşağıdadır.

Post işlemini test etmek için ben Fiddler kullandım. Aşağıdaki screenshot’da POST API ile http://localhost:1923:api/cities adresine şehir adı: Tokyo ve Ülkesi: Japan olan bir json data gönderilmiştir.

Fiddler: Header’a “Content-Type: application/json” yazmayı unutmayın.

Post2

Browser’dan http://localhost:1923:api/cities Url adresine giriş yapıldığı zaman GET işlemi sonucu olarak aşağıdaki ekran görüntüsü alınır. Görüldüğü gibi yeni eklenen Tokyo şehiri ve ülkesi Japan listelenen cities nesnesine dahil olmuştur.

screen3

console

Aynı işlem için PUT methodu da aşağıdaki gibi kullanılabilir. Gene sonuçlar Fiddler’dan test edilebilir.

Görüldüğü gibi Node.Js ile Restful bir servis yazmak gayet kolaydır. Yeni bir makalede görüşmek üzere hoşçakalın.

Herkes Görsün:

Sevebilirsin...

4 Yanıt

  1. Yigit dedi ki:

    Sayenizde node.js ‘e kolay bir giris yapmis oldum hocam.
    Elinize saglik.

  2. Kağan dedi ki:

    elinize sağlık. Node.js vs SignalR denilse sizin fikriniz ne olurdu?
    Birde signalR webineriniz gerçekten çok iyiydi teşekkürler. Özellikle sizin webinerleriniz çok öğretici oluyor.Umarım daha çok webiner yaparsınız.
    Teşekkürler

    • borsoft dedi ki:

      Selam Kağan;
      Öncelikle yorumların için teşekkürler.
      NodeJS ve SignalR’ı kıyaslamak tam doğru olmayabilir. Öncelikle amacının ne olduğunu ve nasıl bir sistemde çalşacağına göre değişiklik gösterecektir. NodJS’in sihirli bir değnek olduğu gibi bir kanı var ama malesef bu doğru değildir.

      İyi çalışmalar.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir