İLE %100 UYUMLU: Güvenli E-Posta Hosting Hizmetimizi 1 AY ÜCRETSİZ Deneyin! HEMEN OLUŞTURUN
İçindekiler
Node.js, JavaScript tabanlı, açık kaynaklı ve asenkron olay güdümlü bir çalışma ortamıdır. Genellikle web sunucuları ve API geliştirme süreçlerinde kullanılır. Node.js, Chrome’un V8 motorunu kullanarak JavaScript kodlarını sunucu tarafında çalıştırır.
Node.js’in öne çıkan özellikleri şunlardır:
Bu rehberde Node.js kullanarak sıfırdan bir RESTful API geliştirmeyi öğreneceğiz.
API geliştirmeye başlamadan önce aşağıdaki araçlara ihtiyacımız var:
Eğer Node.js sisteminizde kurulu değilse, Node.js’in resmi sitesinden uygun sürümü indirip kurabilirsiniz.
İlk olarak yeni bir proje klasörü oluşturun ve içine girin:
mkdir node-api && cd node-api
Daha sonra npm ile bir proje başlatın:
npm init -y
Bu komut, projeniz için package.json dosyasını oluşturur.
Express.js, Node.js üzerinde API geliştirmeyi kolaylaştıran minimal bir framework’tür. Projeye eklemek için şu komutu çalıştırın:
npm install express
Kurulum tamamlandıktan sonra, temel bir Express sunucusu oluşturalım.
server.js adında bir dosya oluşturun ve içine şu kodları ekleyin:
const express = require('express'); const app = express(); const PORT = 3000; // JSON verilerini kullanabilmek için middleware app.use(express.json()); // Basit bir GET endpoint'i app.get('/', (req, res) => { res.send('Node.js API’ye hoş geldiniz!'); }); // Sunucuyu başlat app.listen(PORT, () => { console.log(`Sunucu ${PORT} portunda çalışıyor...`); });
Ardından sunucuyu çalıştırmak için terminalde şu komutu kullanın:
node server.js
Tarayıcınızda http://localhost:3000/ adresine giderseniz “Node.js API’ye hoş geldiniz!” mesajını göreceksiniz. 🎉
Şimdi basit bir kullanıcı yönetim API’si oluşturacağız. Aşağıdaki işlemleri yapacağız:
Öncelikle, geçici olarak kullanıcıları saklamak için bir dizi oluşturalım:
let users = [ { id: 1, name: "Ali" }, { id: 2, name: "Ayşe" } ];
app.get('/users', (req, res) => { res.json(users); });
Bu endpoint tarayıcıda http://localhost:3000/users adresine gidildiğinde tüm kullanıcıları JSON formatında döndürecektir.
app.post('/users', (req, res) => { const newUser = { id: users.length + 1, name: req.body.name }; users.push(newUser); res.status(201).json(newUser); });
Bu API’yi test etmek için Postman veya cURL ile şu isteği yapabilirsiniz:
curl -X POST http://localhost:3000/users -H "Content-Type: application/json" -d '{"name": "Mehmet"}'
app.put('/users/:id', (req, res) => { const user = users.find(u => u.id === parseInt(req.params.id)); if (!user) return res.status(404).send("Kullanıcı bulunamadı."); user.name = req.body.name; res.json(user); });
Bu endpoint, belirli bir kullanıcının ismini güncelleyerek JSON formatında döndürecektir.
app.delete('/users/:id', (req, res) => { users = users.filter(u => u.id !== parseInt(req.params.id)); res.send("Kullanıcı silindi."); });
Bu API çağrıldığında ilgili kullanıcı listeden kaldırılır.
Şimdi API’mizi daha profesyonel hale getirmek için şu adımları uygulayabiliriz:
Eğer API’niz başka bir web sitesi tarafından kullanılacaksa CORS (Cross-Origin Resource Sharing) ayarlarını yapmalısınız. Bunu yapmak için cors modülünü yükleyin:
cors
npm install cors
Daha sonra aşağıdaki satırı ekleyin:
const cors = require('cors'); app.use(cors());
Hataları daha iyi yönetmek için try-catch blokları ekleyebilirsiniz:
app.get('/users/:id', (req, res) => { try { const user = users.find(u => u.id === parseInt(req.params.id)); if (!user) throw new Error("Kullanıcı bulunamadı."); res.json(user); } catch (error) { res.status(404).json({ message: error.message }); } });
Kullanıcı girişini güvenli hale getirmek için JSON Web Token (JWT) kullanabilirsiniz:
npm install jsonwebtoken
Bu modülle güvenli oturum yönetimi sağlayabilirsiniz.
Bu rehberde Node.js ve Express.js kullanarak temel bir API geliştirme sürecini öğrendik. İşte yaptıklarımızın özeti:
✅ Express.js ile bir RESTful API kurduk.✅ GET, POST, PUT, DELETE istekleriyle CRUD işlemlerini gerçekleştirdik.✅ CORS ve hata yönetimi ekledik.✅ Kimlik doğrulama (JWT) gibi eklemelerle API’yi daha güvenli hale getirdik.
Bu API’yi MongoDB veya PostgreSQL gibi bir veritabanına bağlayarak daha gelişmiş hale getirebilirsiniz.