Actividad 2. API REST de productos en Django
7. Recuerda que todo esto está en la base de datos
Cuando utilizas la API en el navegador o en Postman, no estás trabajando con archivos ni datos temporales, sino con una base de datos real (MySQL, en este caso).
Cada vez que haces una petición a la API (GET, POST, PUT, PATCH o DELETE), estás modificando directamente la base de datos MySQL.
Lo que ves en el navegador o en Postman refleja exactamente lo que hay dentro de la tabla productos_producto.
La API es simplemente la “puerta de entrada” para leer, crear o modificar datos en la base de datos.
Cada vez que creas un producto (POST)
Cuando envías datos como:
{
"nombre": "Teclado Mecánico RGB",
"precio": 49.99,
"stock": 20
}
- Django REST Framework recibe el JSON
- Lo valida con el serializador
- Crea un nuevo objeto Producto
- Lo guarda en la tabla productos_producto de MySQL
En SQL sería algo como:
INSERT INTO productos_producto (nombre, descripcion, precio, stock, disponible, categoria_id)
VALUES ("Teclado Mecánico RGB", "Teclado gaming con luces", 49.99, 20, 1, 1);
Cuando listas todos los productos (GET)
Al entrar en:
/api/productos/
Django hace una consulta SQL:
SELECT * FROM productos_producto;
Y convierte cada fila de la tabla en un objeto JSON.
Cuando ves un producto concreto (GET /id/)
Al entrar en
/api/productos/3/
Django ejecuta:
SELECT * FROM productos_producto WHERE id = 3 LIMIT 1;
Y te devuelve ese producto en formato JSON.
Cuando actualizas un producto (PUT o PATCH)
Ejemplo
{
"precio": 39.99
}
Django localiza ese registro por ID
Modifica solo los valores enviados (PATCH)
Y ejecuta:
UPDATE productos_producto
SET precio = 39.99
WHERE id = 3;
Cuando borras un producto (DELETE
Al hacer:
DELETE /api/productos/4/
Django ejecuta:
DELETE FROM productos_producto WHERE id = 4;
Ese producto desaparece totalmente de la base de datos.