Typescript ve Express ile API Geliştirme: Kolay ve Verimli Yol
27 Temmuz 2023 tarihinde yayınlandı~3 dakika okuma süresi
Eğer Express ve Typescript kullanarak hızlıca bir API uygulaması ayağa kaldırmak istiyorsanız, bu yazı size basit ve temel bir rehber olmayı amaçlıyor.
Internet üzerinde bu konuyu ele alan pek çok blog yazısı mevcut, fakat hem güncel hem de karmaşık olmayan bir kaynak bulmak bazen zorlayıcı olabiliyor. Dolayısıyla belirli aralıklarla güncellemeyi planladığım bu kaynağı takip etmek işinizi kolaylaştırabilir. Yine de bu yazının bir "best practise" olmadığını, ihtiyaç halinde kullanılabilecek bir referans olmayı hedeflediğini unutmayın. Ayrıca bu yazı ile birlikte oluşturacağımız uygulamanın herhangi bir veritabanına bağlantı yapmayacağını da en başından belirtmiş olalım. Siz ihtiyacınıza göre bir veritabanı teknolojisini bu uygulamaya kolayca entegre edebilirsiniz.
Hazırsanız başlayalım:
- İlk olarak yeni bir uygulama klasörü oluşturun ve içine girin:
- Aşağıdaki komutu çalıştırarak yeni bir npm projesi başlatın:
Burada -y
parametresi hızlı bir biçimde projenizi oluşturmanızı sağlar. Bu parametreyi geçmediğiniz takdirde npm
sizden projenizle ilgili bazı detayları girmenizi isteyecektir.
- TypeScript ve gerekli type tanımlamaları ile birlikte
nodemon
paketini yükleyin:
Buradaki nodemon paketi, siz geliştirme yaparken değişiklikleri takip ederek uygulamanın otomatik olarak yeniden başlatılmasını sağlar. Dolayısıyla yapacağınız her değişiklik sonrasın uygulamanızı yeniden başlatmaya gerek kalmaz.
- Typescript konfigürasyonunu oluşturmak için aşağıdaki komutu çalıştırın:
- Temel ihtiyacımız olan Express'i projeye dahil edin:
- Şimdi bütün işlevlerimizi derli toplu bir arada tutacağımız dizin yapısını hazırlama zamanı. Öncelikle uygulama ana dizininde src klasörünü oluşturup ve içerisine app.ts dosyasını ekleyin:
Sonra uygulamadaki farklı kaynak tiplerine (users, products vb.) erişimi yönetecek route yapısını tutmak için routes klasörünü oluşturup içerisine ihtiyacınıza göre [route-type].ts ve index.ts dosyalarını ekleyin:
(Biz burada örnek olması açısından /api şeklindeki endpoint için api.ts dosyasını eklemiş olacağız.)
- /api ile ilgili route tanımlamalarını yapmak için api.ts dosyasını aşağıdaki gibi güncelleyin:
Sonrasında routes altındaki index.ts dosyasını aşağıdaki gibi güncelleyin:
Bu işlemi tüm routeların tek bir dosya altında toplanıp kolayca yönetilebilmesini sağlamak için yaptık. Eğer bunun dışında bir endpoint eklemeniz gerekirse, artık tek yapmanız gereken ilgili dosyayı ekledikten sonra index.ts içerisinde import edip yukarıdaki gibi tanımlama yapmak.
- app.ts'i bu routeları kullanabileceğimiz şekilde güncelleyin:
- Son olarak nodemon'un uygun biçimde çalışmasını sağlamak için package.json'daki scripts kısmına aşağıdaki eklemeyi yapın:
Mevcut haliyle bu uygulama sadece local development amaçlı kullanılabilir. Şimdi kodumuzu build edecek ve bağımsız olarak çalıştırabilecek scriptleri aşağıdaki gibi package.json dosyasına ekleyin:
Bu noktada; build sonrası ortaya çıkan assetlerin dist/ dizini altında tutulması için, uygulamanızın ana dizinindeki tsconfig.json'daki outDir değerini "./dist" olarak değiştirmeniz gerektiğini unutmayın.
- Şimdi npm run dev komutu ile uygulamanızı ayağa kaldırıp test edebilirsiniz.
Tüm bu adımları tamamladıysanız, üzerinde kolayca geliştirme yapıp bir sunucuda (gerekli konfigürasyonları tamamladıktan sonra) yayına alabileceğiniz API uygulamanız artık hazır.