Express.js Nedir?
Express.js, Node.js üzerinde çalışan minimalist ve esnek bir web uygulama çatısıdır. API'ler, web sunucuları ve dinamik web uygulamaları oluşturmak için harika bir araçtır. Hızlıca başlamak ve verimli bir şekilde geliştirmek isteyen geliştiriciler için ideal bir tercihtir. Birçok geliştirici, Express.js’in basitliğinden ve kolaylığından yararlanarak projelerini hızla hayata geçirir.
İlk Adım: Node.js ve Express.js Kurulumu
Express.js ile çalışmaya başlamadan önce, Node.js'in sisteminizde yüklü olması gerektiğini unutmayın. Node.js ve npm (Node Package Manager) yüklü değilse, ilk önce [Node.js resmi web sitesinden](https://nodejs.org) indirip yüklemeniz gerekiyor. Ardından, Express.js’i projenize dahil etmek için terminal üzerinden şu komutu çalıştırabilirsiniz:
npm install express --save
Bu komut, Express.js’i projenize dahil eder ve kullanıma hazır hale getirir.
API Oluşturma: İlk Adımlar
Şimdi, Express.js ile basit bir API geliştirmeye başlayalım. İlk olarak, bir `server.js` dosyası oluşturalım ve Express.js’i projeye dahil edelim.
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Merhaba Dünya!');
});
app.listen(port, () => {
console.log(`Sunucu http://localhost:${port} üzerinde çalışıyor`);
});
Yukarıdaki kod, temel bir Express.js sunucusu oluşturur. `GET` isteği ile gelen taleplere, "Merhaba Dünya!" mesajını döndürür. Şimdi, bu API’yi tarayıcınızda görüntüleyebilirsiniz: `http://localhost:3000`.
Veri ile Çalışma: POST İstekleri
Şimdi biraz daha ileri gidip, verilerle çalışalım. Express.js, `POST` istekleri ile gelen verileri almak için mükemmel bir araçtır. Bir JSON verisi almak için aşağıdaki gibi bir kod kullanabilirsiniz:
app.use(express.json()); // JSON verisi almak için
app.post('/api/user', (req, res) => {
const user = req.body;
res.status(201).send({
message: 'Kullanıcı başarıyla eklendi!',
user: user
});
});
Yukarıdaki kod, bir `POST` isteği alır ve bu istekteki veriyi bir kullanıcı olarak kabul eder. API, başarılı bir şekilde eklenen kullanıcıyı geri döndürür.
Veritabanı Entegrasyonu
Gerçek dünya projelerinde veritabanı entegrasyonu oldukça önemli bir yer tutar. Express.js ile bir veritabanı bağlamak için genellikle `MongoDB`, `MySQL` veya `PostgreSQL` gibi veritabanları tercih edilir. Örneğin, MongoDB ile çalışmak için `mongoose` paketini kurarak veritabanı bağlantısını gerçekleştirebilirsiniz.
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => console.log('Veritabanına bağlanıldı!'))
.catch(err => console.error('Veritabanına bağlanırken bir hata oluştu:', err));
Bu kod, Express.js sunucusunu başlattığınızda MongoDB veritabanına bağlanmanızı sağlar.
API Güvenliği: JWT ile Kimlik Doğrulama
API’lerin güvenliği, uygulama geliştirmede önemli bir adımdır. JSON Web Tokens (JWT), Express.js ile API güvenliği sağlamak için harika bir yoldur. JWT ile kullanıcı kimlik doğrulaması yaparak, kullanıcıların yalnızca yetkilendirilmiş işlemleri gerçekleştirmesine izin verebilirsiniz.
const jwt = require('jsonwebtoken');
app.post('/login', (req, res) => {
const user = req.body;
// Burada gerçek kimlik doğrulama yapılmalı
const token = jwt.sign({ id: user.id }, 'secretkey', { expiresIn: '1h' });
res.json({ token });
});
app.get('/protected', (req, res) => {
const token = req.headers['authorization'];
jwt.verify(token, 'secretkey', (err, decoded) => {
if (err) {
return res.status(403).send('Geçersiz token!');
}
res.send('Korunan alana erişim başarılı!');
});
});
Bu kod, kullanıcılara bir token verir ve bu token’ı korunan alanlarda doğrulamak için kullanır. Bu, API güvenliğini sağlamanın etkili bir yoludur.
Sonuç
Express.js ile API geliştirme süreci, ilk başta karmaşık görünse de, adım adım ilerledikçe ne kadar basit ve güçlü olduğunu fark ediyorsunuz. Bu yazıda, Express.js ile API geliştirmeye başlamak için gerekli temel adımları inceledik. Artık, geliştirdiğiniz API’yi kullanıcılarla paylaşmak için gerekli tüm bilgilere sahipsiniz.