Menu
CoddyTech

Membuat dengan POST

Termasuk bagian REST API dalam perjalanan Node.js di Coddy. Pelajaran 2 dari 18.

client yang menambahkan tugas perlu mengetahui lokasi tugas baru tersebut. client mengirim resource baru ke URL list dengan POST, lalu server menjawab 201 Created dengan resource tersebut dan header Location yang mencantumkan URL-nya.

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

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

Server memilih id, jadi dua client tidak akan pernah bisa mengklaim id yang sama. Dengan header Location, client dapat mengambil event baru tanpa menyusun URL sendiri. res.location(path) menetapkan header tersebut, dan dapat dirangkai seperti res.status:

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

Tantangan

Mudah
  • POST /api/tasks dengan { "title" } memberikan respons 201 dengan task baru: id dari nextId() di store.js, done: false, createdAt dari new Date().toISOString().
  • Ini menetapkan Location ke /api/tasks/<id>.
  • Tanpa title: 400.

Kirim { "title": "Order new chairs" }, lalu lakukan GET pada path Location, kemudian POST {}.

Coba sendiri

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;

Semua pelajaran di REST API

Latihan sendiri: Playground Express