Expressjs’te Put , Patch & Delete Request Kullanımı

Selim KURT
2 min readFeb 24, 2024

--

PUT Request

PUT request , genellikle bir kaynağın mevcut durumunu güncellemek için kullanılır. Gönderilen veri kaynaktaki mevcut verilerin yerini alarak değiştireleceğini ve gönderilen veride bazı alanlar bulunmuyorsa , bu alanların kaynaktan silineceği veya değerlerin sıfırlanacağı anlamına gelir.

Örneğin, bir kullanıcı profili güncellemesi yaparken, kullanıcının adı, soyadı, e-posta adresi gibi tüm alanları içeren bir JSON verisi gönderirsin. Eğer güncelleme sırasında email alanı gönderilmezse, mevcut email bilgisi silinir veya varsayılan bir değere ayarlanır.

PUT request’leri idempotent(etkisiz) olmalıdır, yani aynı PUT requesti birden fazla kez yapmak, bir kez yapmaktan farklı bir sonuç üretmemelidir. Bu özellik, ağda güvenilirlik sorunları yaşandığında faydalıdır çünkü aynı request birden fazla kez yapılsa bile aynı sonucu üretecektir.

const express = require('express');
const app = express();
app.use(express.json()); // JSON request body'leri işlemek için

app.put('/user/:id', (req, res) => {
const { id } = req.params;
const { name, email } = req.body; // Güncellenecek yeni veriler
// Burada veritabanında kullanıcıyı güncelleyeceğini varsayalım.
res.send(`Kullanıcı ${id} güncellendi: ${name}, ${email}`);
});

app.listen(3000, () => {
console.log('Sunucu 3000 portunda çalışıyor.');
});

PATCH Request

PATCH request, kaynaktaki verinin sadece belirli bölümlerini güncellenmesi için kullanılır. Gönderilen verinin yalnızca belirli alanlarda değişiklik yapacağı ve gönderilmeyen alanların kaynaktaki mevcut değerlerini koruyacağı anlamına gelir.

Bu yöntem, yalnızca değişmesi gereken verilerin gönderilmesini gerektirir, bu da daha verimli veri transferi sağlar ve ağ üzerindeki yükü azaltır. Örneğin, bir kullanıcının yalnızca telefon numarasını güncellemek istiyorsa, PATCH requestte yalnızca telefon numarasını gönderirsin ve diğer tüm bilgiler aynı kalır.

PATCH requestlerin idempotent(etkisiz) olup olmaması, projenin nasıl tasarlandığına bağlıdır.

app.patch('/user/:id', (req, res) => {
const { id } = req.params;
const { email } = req.body; // Sadece güncellenecek email
// Burada sadece kullanıcının email adresini güncelleyeceğini varsayalım.
res.send(`Kullanıcı ${id} için email güncellendi: ${email}`);
});

DELETE Request

DELETE Requestler, belirtilen bir veriyi sunucudan silmek için kullanılır. Bu işlem genellikle geri alınamaz, yani bir kaynak silindikten sonra, o kaynağa ait verilerin kurtarılması mümkün olmayabilir.

DELETE işlemleri de idempotent olmalıdır. Bir kaynağı silme işlemi ilk kez yapıldığında kaynak silinir ve aynı DELETE request tekrar yapıldığında, kaynak zaten silinmiş olduğundan, sistem herhangi bir değişiklik yapmaz ve genellikle aynı sonuç (örneğin, 200 OK veya 404 Not Found) döndürülür.

Bu tür Requestlerde kullanıcı verileri gibi hassas bilgilerle çalışırken özellikle dikkatli edilmesi gerekir. DELETE işlemi, özellikle kullanıcı tarafından geri alınamayacak işlemler olduğundan, yanlışlıkla veri kaybını önlemek amacıyla ek kullanıcı onayı veya güvenlik kontrollerinin olması gerekmektedir.

app.delete('/user/:id', (req, res) => {
const { id } = req.params;
// Burada kullanıcıyı veritabanından silineceğini varsayalım.
res.send(`Kullanıcı ${id} silindi`);
});

--

--

Selim KURT
Selim KURT

Written by Selim KURT

Software Developer - Mobile & Web Developer #react #reactnative #nextjs #frontend #digitaltransformation #javascript

No responses yet