Crear con POST
Parte de la sección API REST del Journey de Node.js de Coddy. Lección 2 de 18.
Un cliente que añade una tarea necesita saber dónde se encuentra la nueva tarea. Envía el nuevo recurso a la URL de la lista con POST, y el servidor responde 201 Created con el recurso y un encabezado Location que indica su URL.
POST /api/events { "name": "Launch party" }
201 Created
Location: /api/events/12
{ "id": 12, "name": "Launch party" }El servidor elige el id, así que dos clientes nunca pueden reclamar el mismo. Con el encabezado Location, el cliente puede obtener el nuevo evento sin construir la URL por sí mismo. res.location(path) establece ese encabezado y se encadena como res.status:
res.status(201).location(`/api/events/${event.id}`).json(event);Desafío
FácilPOST /api/taskscon{ "title" }responde con 201 y la nueva tarea:iddenextId()enstore.js,done: false,createdAtdenew Date().toISOString().- Establece
Locationen/api/tasks/<id>. - Sin
title: 400.
Envía { "title": "Order new chairs" }, después haz GET a la ruta de Location y luego POST {}.
Pruébalo tú mismo
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;
Todas las lecciones de API REST
1Recursos y verbos
Recursos y URLCrear con POST