Создание с помощью POST
Часть раздела REST API путешествия по Node.js на Coddy. Урок 2 из 18.
Клиенту, который добавляет задачу, нужно знать, где находится новая задача. Он отправляет новый ресурс по URL списка с помощью POST, а сервер отвечает 201 Created, возвращая ресурс и заголовок Location с указанием его URL.
POST /api/events { "name": "Launch party" }
201 Created
Location: /api/events/12
{ "id": 12, "name": "Launch party" }Идентификатор назначает сервер, поэтому два клиента никогда не смогут запросить один и тот же. С помощью заголовка Location клиент может получить новое мероприятие, не формируя URL самостоятельно. res.location(path) задаёт этот заголовок и может быть объединён в цепочку вызовов, как res.status:
res.status(201).location(`/api/events/${event.id}`).json(event);Задание
ЛегкоPOST /api/tasksс{ "title" }отвечает кодом 201 и возвращает новую задачу:idизnextId()вstore.js,done: false,createdAtизnew Date().toISOString().- В заголовке
Locationуказывается/api/tasks/<id>. - Без
title: 400.
Отправьте { "title": "Order new chairs" }, затем выполните GET-запрос по пути из заголовка Location, затем отправьте POST-запрос с {}.
Попробуйте сами
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
1Ресурсы и глаголы
Ресурсы и URLСоздание с помощью POST