Tworzenie za pomocą POST
Część sekcji API REST ścieżki Node.js w Coddy. Lekcja 2 z 18.
Klient dodający zadanie musi wiedzieć, gdzie znajduje się nowe zadanie. Wysyła nowy zasób pod adres URL listy za pomocą POST, a serwer odpowiada 201 Created, przesyłając zasób i nagłówek Location zawierający jego adres URL.
POST /api/events { "name": "Launch party" }
201 Created
Location: /api/events/12
{ "id": 12, "name": "Launch party" }Serwer wybiera id, więc dwóch klientów nigdy nie może użyć tego samego. Dzięki nagłówkowi Location klient może pobrać nowe wydarzenie bez samodzielnego konstruowania adresu URL. res.location(path) ustawia ten nagłówek i można łączyć tę metodę z res.status:
res.status(201).location(`/api/events/${event.id}`).json(event);Wyzwanie
ŁatwyPOST /api/tasksz{ "title" }zwraca kod 201 i nowe zadanie:idznextId()wstore.js,done: false,createdAtznew Date().toISOString().- Ustawia
Locationna/api/tasks/<id>. - Brak
title: 400.
Wyślij { "title": "Order new chairs" }, następnie wykonaj GET ścieżki Location, a potem POST {}.
Spróbuj swoich sił
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;
Wszystkie lekcje w sekcji API REST
1Zasoby i czasowniki
Zasoby i URL-eTworzenie za pomocą POST