PATCH ile Kısmi Güncellemeler
Coddy'nin Node.js Journey'sinin REST API'leri bölümünün bir parçası. Ders 3 / 25.
Bir görevi tamamlandı olarak işaretlemek, başlığını yeniden göndermek anlamına gelmemelidir. PATCH yalnızca değişen alanları taşır ve sunucu diğer tüm alanları olduğu gibi bırakır.
// PATCH /api/invoices/7 { "paid": true }
const { paid, amount } = req.body ?? {};
if (paid !== undefined) invoice.paid = paid;
if (amount !== undefined) invoice.amount = amount;
res.json(invoice);Her alanı undefined olup olmadığını kontrol ederek sınayın; if (paid) kullanmayın: false, istemcinin gönderebileceği bir değerdir. İstemcinin id değerini değiştirememesi için req.body içeriğini nesnenin üzerine yaymak yerine alanları tek tek kopyalayın. Gövdesi olmayan bir istek, req.body değerini tanımsız bırakır; ?? {} bunun için kullanılır. Yanıt, güncellenmiş faturanın tamamını içeren 200 durum kodudur.
Görev
KolayPATCH /api/tasks/:id, gövdenin gönderdiği yalnızcatitleveyadonealanlarını değiştirir.- Tüm görevi içeren bir 200 yanıtı verir.
- Bilinmeyen bir id,
{ "error": "Task not found" }içeren bir 404 yanıtı verir.
PATCH /api/tasks/2 isteğini { "done": true } ile gönder, ardından GET /api/tasks/2 isteğini, sonra da aynı PATCH isteğini /api/tasks/99 adresine gönder.
Kendin dene
import { Router } from 'express';
import { nextId, tasks } from '../store.js';
const router = Router();
router.get('/', (req, res) => {
res.json(tasks);
});
router.get('/:id', (req, res) => {
const task = tasks.find((t) => t.id === Number(req.params.id));
if (!task) {
return res.status(404).json({ error: 'Task not found' });
}
res.json(task);
});
router.post('/', (req, res) => {
const { title } = req.body ?? {};
if (!title) {
return res.status(400).json({ error: 'title is required' });
}
const task = { id: nextId(), title, done: false, createdAt: new Date().toISOString() };
tasks.push(task);
res.status(201).location(`/api/tasks/${task.id}`).json(task);
});
export default router;
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
REST API'leri bölümündeki tüm dersler
1Kaynaklar ve Fiiller
Kaynaklar ve URL'lerPOST ile Oluşturma4Tarayıcılar, Sürümler ve Yapılandırma
Origin NedirBaşka Bir Origin'e İzin VermeCORSAPI'yi Çağıran Bir SayfaKendi başına pratik yap: Express playground