Backend Development

Node.js, Express.js ve MongoDB ile RESTful API Geliştirme

Spread the love

Bu öğretici, Node.js, Express.js ve MongoDB kullanarak RESTful bir API oluşturma sürecinde size rehberlik edecektir. Ortamınızı kurmayı, API uç noktalarını tanımlamayı ve veri kalıcılığını ele almayı kapsayacağız. Sonunda, genişlemeye hazır işlevsel bir API’niz olacak.

İçerik Tablosu

REST API’leri ve MongoDB’ye Giriş

REST (Representational State Transfer), ölçeklenebilir ve sürdürülebilir web servisleri oluşturmak için bir mimari stildir. REST API’leri, URL’ler tarafından tanımlanan kaynaklarla etkileşim kurmak için standart HTTP yöntemlerini (GET, POST, PUT, DELETE) kullanır. MongoDB, veri saklama ve alma için esneklik sağlayan NoSQL, belge yönelimli bir veritabanıdır. Bu kombinasyon, birçok uygulama için güçlü bir temel oluşturur.

Geliştirme Ortamınızı Kurma

Başlamadan önce, Node.js ve npm (Node Package Manager)’ın yüklü olduğundan emin olun. Bunları nodejs.org adresinden indirebilirsiniz. Ayrıca, MongoDB’nin yüklü ve çalışır durumda olduğundan emin olun. Bunu mongodb.com adresinden indirebilirsiniz.

Proje Kurulumu ve Bağımlılıklar

Yeni bir proje dizini oluşturun ve terminalinizde ona gidin. Yeni bir Node.js projesi başlatın:


npm init -y

Gerekli bağımlılıkları yükleyin:


npm install express mongoose body-parser
  • express: Minimal ve esnek bir Node.js web uygulaması çerçevesi.
  • mongoose: MongoDB ve Node.js için bir Nesne Veri Modellemesi (ODM) kütüphanesi.
  • body-parser: JSON istek gövdelerini ayrıştırmak için ara yazılım.

MongoDB’ye Bağlanma

server.js adlı bir dosya oluşturun ve aşağıdaki kodu ekleyin:


const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');

const app = express();
const port = 3000;

// MongoDB bağlantı dizisi - bağlantı ayrıntılarınızı buraya girin
const mongoURI = 'mongodb://localhost:27017/mydatabase'; 

mongoose.connect(mongoURI, { useNewUrlParser: true, useUnifiedTopology: true })
  .then(() => console.log('MongoDB'ye bağlandı'))
  .catch(err => console.error('MongoDB'ye bağlanırken hata:', err));

app.use(bodyParser.json());

app.listen(port, () => console.log(`${port} numaralı bağlantı noktasında dinleniyor`));

API Uç Noktalarını Tanımlama (CRUD İşlemleri)

Öğeleri yönetmek için basit bir model ve uç noktalar oluşturalım. Bunu server.js dosyanıza ekleyin:


const ItemSchema = new mongoose.Schema({
  name: String,
  description: String
});

const Item = mongoose.model('Item', ItemSchema);

// POST /items - Yeni bir öğe oluştur
app.post('/items', async (req, res) => {
  try {
    const newItem = new Item(req.body);
    const savedItem = await newItem.save();
    res.status(201).json(savedItem);
  } catch (error) {
    res.status(500).json({ error: error.message });
  }
});

// GET /items - Tüm öğeleri al
app.get('/items', async (req, res) => {
  try {
    const items = await Item.find({});
    res.json(items);
  } catch (error) {
    res.status(500).json({ error: error.message });
  }
});

// GET /items/:id - ID'ye göre tek bir öğe al
app.get('/items/:id', async (req, res) => {
  try {
    const item = await Item.findById(req.params.id);
    if (!item) return res.status(404).json({ message: 'Öğe bulunamadı' });
    res.json(item);
  } catch (error) {
    res.status(500).json({ error: error.message });
  }
});

// PUT /items/:id - Bir öğeyi güncelle
app.put('/items/:id', async (req, res) => {
  try {
    const updatedItem = await Item.findByIdAndUpdate(req.params.id, req.body, { new: true });
    if (!updatedItem) return res.status(404).json({ message: 'Öğe bulunamadı' });
    res.json(updatedItem);
  } catch (error) {
    res.status(500).json({ error: error.message });
  }
});

// DELETE /items/:id - Bir öğeyi sil
app.delete('/items/:id', async (req, res) => {
  try {
    const deletedItem = await Item.findByIdAndDelete(req.params.id);
    if (!deletedItem) return res.status(404).json({ message: 'Öğe bulunamadı' });
    res.json({ message: 'Öğe silindi' });
  } catch (error) {
    res.status(500).json({ error: error.message });
  }
});

API’nizi Test Etme

API uç noktalarınızı test etmek için Postman veya curl gibi araçları kullanın. Yeni öğeler oluşturmak için /items adresine POST istekleri gönderin, tüm öğeleri almak için /items adresine GET istekleri gönderin ve ID’lerini kullanarak tek tek öğeler için GET, PUT ve DELETE istekleri kullanın.

Sağlam Hata Yönetimi Uygulama

Örnek kod, temel hata yönetimini içerir. Üretim için daha kapsamlı hata yönetimi, günlüğe kaydetme ve giriş doğrulama uygulayın.

Sonuç ve Sonraki Adımlar

MongoDB ile temel bir REST API’sini başarıyla oluşturdunuz! Kimlik doğrulama, yetkilendirme, veri doğrulama ve daha gelişmiş hata yönetimi ekleyerek bunu genişletin. Üretim hazır bir veritabanı bağlantısı kullanmayı ve hem Express.js hem de Mongoose’un daha gelişmiş özelliklerini keşfetmeyi düşünün.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir