Express.js Kullanarak Dinamik Route’lar Oluşturma

Express.js Kullanarak Dinamik Route’lar Oluşturma

11 Mayıs, 2022 | Admin


Express.js kullanmak için en önemli kavramlardan biri olan “route” u bilmemiz gerekir. Route, HTTP verb’lerini çağırmak için kullanılan modellerdir.




Örnek 1.0: HTTP Verbs



 


Yukarıdaki örnekte görüldüğü üzere bu verb'ler CRUD(Create, Read, Update, Delete) işlemlerine karşılık gelir. Şimdi bu kod örnekleriyle beraber yapmamız gerekenlere odaklanalım.






Örnek 1.1: Örnek bir index.js dosyası


Şekilde basit bir REST API oluşturduk. İlk olarak modüllerimizi dahil ettik. Express ile gelen JSON' lar için kullanacağımız middleware’i “app.use()” kullanarak dahil ettik.


Bundan sonra ise, daha önceden de bahsettiğimiz, route tanımlama işlemi var. Modul tanımlama kısmında express modülünün değişkeni ile bir express() fonksiyonunu obje olarak tanımladık. Bu sayede express’i kullanabileceğiz.


Tanımladığımız app objesi ile express modülünün bize sunduğu fonksiyonları kullanabiliriz. Bu fonksiyonlardan birkaçı ise bizim HTTP Verb’lerimizdir. Örnekte GET, yani READ işlemi yerine geçen verb’i kullandık. Bunu front-end yani kullanıcının gözünden anlatırsak belirttiğimiz path/url’i girildiğinde kullanıcıya JSON formatında bir response ver anlamına geliyor.

Gelen response şekildeki gibi:




Örnek 1.2: Örnek bir response



Sonuç olarak ilk REST API’mizi yapmış bulunduk. Şimdi biraz daha ilerleyelim.

Temiz kod yazmak gerçekten önemlidir. REST API’lerimizi buna önem vererek yazdığımız zaman, kodumuz ne kadar temiz ve okunulabilir olursa bakımı daha kolay olur. Bundan dolayı router’larımızı ayrı dosyalarda tutarak hem modülerliği arttırmış olacağız hem de kodumuz daha temiz görünecektir.

Öncelikle local'imizde -dosyalarımızın olduğu yer- “routes” klasörü onun içinde de alt klasör olarak “api” oluşturuyoruz. Bunu yapmamızdaki amaç route’ları bu klasör içerisinde oluşturmak. Klasörümüzü oluşturduk ve içine örnek “test.js” adında bir dosya kaydettik.




Örnek 1.3: /routes/api/ konumundaki test.js dosyası


Oluşturduğumuz bu javascripti dosyası artık bizim route'umuz

 oldu. Şimdi route'muza express.js'imizi tanıtmamız gerekiyor. Bu işlemi ana dosyamızdan yapıyoruz. Ana dosyamızda tanımlamayı şu şekilde oluyor:



Örnek 1.4: Ana dosyamız *index.js


REST API’mizi tamamladık. Oluşturduğumuz “test” adlı route’umuzu başarılı bir şekilde kaydettik ve tanımladık. Tahmin edileceği gibi yukardaki örnekte daha temiz ve bakımı kolay kod olması için yapılabilecek bir taktiğimiz var: Her bir route için bir değişken ataması. Daha fazla route ekleme durumda, bu değişken sayısı artacak ve kötü bir görünüme sebep olacak. Değişken ve route tanımlaması yaptığımız -app.use- yerleri silip aşağıdaki şekilde ana dosyamızı güncelleyelim:




Örnek 1.5: Güncellenen ana dosya *index.js.


Eklediğimiz metot sayesinde route’larımızı teker teker tanımlamamıza gerek kalmadı. Bu sayede bizi bir uğraştan kurtardı. Şimdi sıra yukardaki tanımdalığımız “getFiles” metotunun kullanılma nedeni ve dosya içeriğine geldi.

Bu fonksiyon, route’ler için yaptığımız klasör içerisine yeni bir route için oluşturulabilecek klasör ve javascript dosyasını taramak için kullandık. Buna bir göz atalım:




Örnek 1.6 Başka bir dosyadan dışa aktarım yaptığımız getFiles fonksiyonu. *file.js


Son olarak aldığımız response’lere bakalım. REST API’ları test etmek için “Postman” kullanılabilir. Yaptığımız örnekte sadece GET işlemi yaptığımız için browser kullanarak da test edebiliriz. Response’lere göz atalım:




Örnek 1.7: localhost:3000/api/test – Response


Geçersiz veya olmayan bir route’un path’i girildiğinde, dönecek olan response aşağıdaki gibidir:



Örnek 1.8: localhost:3000/api/asdasd – Response



Bize Yazın

İletişim

Bizimle iletişime geçmenin çeşitli yolları var ama çay/kahve içmeyi tercih ederiz.

contact