Fastify.js ile CRUD API Geliştirme Rehberi


Fastify.js ile CRUD API Geliştirme Rehberi

Günümüzde hızlı ve ölçeklenebilir REST API'ler geliştirmek, modern web uygulamalarının temelinden biridir. Fastify.js ile CRUD API geliştirme konusu, özellikle performans ve kolay extensibility arayan geliştiriciler için büyük önem taşıyor. Bu makalede, Fastify.js'in mimarisinden yararlanarak basit ve güçlü bir CRUD API'nin nasıl oluşturulacağını adım adım öğreneceksiniz.

Fastify.js Nedir ve Neden Kullanılır?

Fastify.js, Node.js tabanlı, düşük gecikme ve yüksek verimlilik sunan web framework’lerinden biridir. JSON işleme performansı, eklenti tabanlı gelişmiş mimarisi ve detaylı hata yönetimi ile popülerliğini artırmaktadır. Fastify.js ile CRUD API geliştirme sırasında avantajlı olmasının ana nedeni, hem performanslı olması hem de TypeScript desteğiyle güçlü bir geliştirme deneyimi sunmasıdır.

Adım Adım Fastify.js ile CRUD API Oluşturma

Öncelikle temel bir Fastify.js projesi kuralım. Ardından örnek bir "Kullanıcı" verisi üzerinde CRUD (Create, Read, Update, Delete) işlemlerini barındıran basit bir API geliştireceğiz.

Projeyi Başlatma ve Kurulum

mkdir fastify-crud-api
cd fastify-crud-api
npm init -y
npm install fastify

Fastify.js ile CRUD API Kod Örneği

const fastify = require('fastify')({ logger: true });

let users = [];

// CREATE
fastify.post('/users', async (request, reply) => {
  const { name, email } = request.body;
  const id = users.length + 1;
  const user = { id, name, email };
  users.push(user);
  reply.code(201).send(user);
});

// READ ALL
fastify.get('/users', async (request, reply) => {
  reply.send(users);
});

// READ ONE
fastify.get('/users/:id', async (request, reply) => {
  const user = users.find(u => u.id === Number(request.params.id));
  if (!user) return reply.code(404).send({ message: 'Kullanıcı bulunamadı' });
  reply.send(user);
});

// UPDATE
fastify.put('/users/:id', async (request, reply) => {
  const user = users.find(u => u.id === Number(request.params.id));
  if (!user) return reply.code(404).send({ message: 'Kullanıcı bulunamadı' });
  const { name, email } = request.body;
  user.name = name || user.name;
  user.email = email || user.email;
  reply.send(user);
});

// DELETE
fastify.delete('/users/:id', async (request, reply) => {
  users = users.filter(u => u.id !== Number(request.params.id));
  reply.code(204).send();
});

// Sunucuyu başlatma
fastify.listen({ port: 3000 }, (err, address) => {
  if (err) throw err;
  fastify.log.info(`Server listening on ${address}`);
});

Sonuç: Fastify.js İle Modern API Geliştirme

Bu makalede, Fastify.js ile CRUD API geliştirme kavramını, teknik açıdan baştan sona örneklerle ele aldık. Geliştirilen bu şekildeki bir API’yı gerçek projelerde kullanmadan önce mutlaka veri doğrulama, hata yönetimi ve kimlik doğrulama eklemelisiniz. Fastify.js’in modern ve hızlı yapısı, projelerinizde etkili REST API’ler oluşturmanız için güçlü bir temel oluşturacaktır.