Menu
CoddyTech

POST ile Oluşturma

Coddy'nin Node.js Journey'sinin REST API'leri bölümünün bir parçası. Ders 2 / 18.

Görev ekleyen bir istemcinin yeni görevin nerede bulunduğunu bilmesi gerekir. Yeni kaynağı POST ile listenin URL'sine gönderir ve sunucu, kaynağı ve URL'sini belirten bir Location başlığını içeren 201 Oluşturuldu yanıtını verir.

POST /api/events   { "name": "Launch party" }

201 Created
Location: /api/events/12
{ "id": 12, "name": "Launch party" }

Kimliği sunucu seçer, bu nedenle iki istemci asla aynı kimliği talep edemez. Location başlığı sayesinde istemci, URL'yi kendisi oluşturmadan yeni etkinliği alabilir. res.location(path) bu başlığı ayarlar ve res.status gibi zincirleme kullanılabilir:

res.status(201).location(`/api/events/${event.id}`).json(event);
challenge icon

Görev

Kolay
  • POST /api/tasks ve { "title" }, yeni görevle birlikte 201 yanıtı verir: store.js içindeki nextId() değerinden gelen id, done: false ve new Date().toISOString() değerinden gelen createdAt.
  • Location değerini /api/tasks/<id> olarak ayarlar.
  • title yoksa: 400.

{ "title": "Order new chairs" } gönder, ardından Location yoluna GET isteği yap, sonra {} ile POST isteği yap.

Kendin dene

import { Router } from 'express';
import { 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);
});

export default router;

REST API'leri bölümündeki tüm dersler