5-2-solo API
versión solo API (sin HTML, sin interfaz web), únicamente los tres métodos con JSON.
📄 Código app.js (API pura)
const express = require('express');
const app = express();
const PORT = 3000;
// Middleware para leer JSON en el body de POST
app.use(express.json());
// Arreglo de productos (base de datos en memoria)
let productos = [
{ id: 1, nombre: 'Laptop', precio: 1000 },
{ id: 2, nombre: 'Mouse', precio: 25 },
{ id: 3, nombre: 'Teclado', precio: 50 }
];
// 1. GET - Obtener todos los productos
app.get('/productos', (req, res) => {
res.json(productos);
});
// 2. GET - Obtener un producto por ID
app.get('/productos/:id', (req, res) => {
const id = parseInt(req.params.id);
const producto = productos.find(p => p.id === id);
if (!producto) {
return res.status(404).json({ error: 'Producto no encontrado' });
}
res.json(producto);
});
// 3. POST - Crear un nuevo producto
app.post('/productos', (req, res) => {
const { nombre, precio } = req.body;
if (!nombre || typeof precio !== 'number') {
return res.status(400).json({ error: 'Faltan nombre o precio (precio debe ser número)' });
}
const nuevoId = productos.length > 0 ? Math.max(...productos.map(p => p.id)) + 1 : 1;
const nuevoProducto = { id: nuevoId, nombre, precio };
productos.push(nuevoProducto);
res.status(201).json(nuevoProducto);
});
// Iniciar servidor
app.listen(PORT, () => {
console.log(`API corriendo en http://localhost:${PORT}`);
console.log('Endpoints:');
console.log(' GET /productos → Obtener todos');
console.log(' GET /productos/:id → Obtener uno por ID');
console.log(' POST /productos → Crear producto (JSON: {nombre, precio})');
});▶️ Cómo probarlo (sin navegador, con herramientas API)
GET todos:
http://localhost:3000/productosGET por ID:
http://localhost:3000/productos/2POST crear (ejemplo con
curlo Postman):
curl -X POST http://localhost:3000/productos \
-H "Content-Type: application/json" \
-d '{"nombre":"Monitor","precio":200}'✨ Características
Sin HTML, sin
res.sendcon etiquetas.Solo respuestas en JSON.
Middleware
express.json()necesario para leer el body del POST.Código corto, ideal para que los alumnos entiendan los endpoints puros.
Comentarios
Publicar un comentario