Criando com POST
Parte da seção APIs REST do Journey de Node.js da Coddy. Lição 2 de 18.
Um cliente que adiciona uma tarefa precisa saber onde a nova tarefa fica. Ele envia o novo recurso para a URL da lista usando POST, e o servidor responde 201 Criado com o recurso e um cabeçalho Location que indica sua URL.
POST /api/events { "name": "Launch party" }
201 Created
Location: /api/events/12
{ "id": 12, "name": "Launch party" }O servidor escolhe o id, então dois clientes nunca podem reivindicar o mesmo. Com o cabeçalho Location, o cliente pode buscar o novo evento sem montar a URL por conta própria. res.location(path) define esse cabeçalho e pode ser encadeado como res.status:
res.status(201).location(`/api/events/${event.id}`).json(event);Desafio
FácilPOST /api/taskscom{ "title" }responde com 201 e a nova tarefa:iddenextId()emstore.js,done: false,createdAtdenew Date().toISOString().- Define
Locationcomo/api/tasks/<id>. - Sem
title: 400.
Envie { "title": "Order new chairs" }, depois faça GET no caminho de Location e, em seguida, POST {}.
Experimente você mesmo
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 as lições de APIs REST
1Recursos e verbos
Recursos e URLsCriando com POST