Este proyecto es una API RESTful desarrollada con Flask y MySQL, diseñada para gestionar tareas (To-Do List). La API proporciona endpoints para realizar operaciones CRUD (Crear, Leer, Actualizar y Eliminar) sobre una tabla todos
.
Esta API permite gestionar una lista de tareas (To-Do List) utilizando una base de datos MySQL. Los usuarios pueden crear, leer, actualizar y eliminar tareas mediante solicitudes HTTP.
Para ejecutar este proyecto, necesitas:
- Python 3.x
- Flask (
pip install flask
) - Flask-CORS (
pip install flask-cors
) - mysql-connector-python (
pip install mysql-connector-python
) - Una base de datos MySQL configurada con la tabla
todos
.
CREATE TABLE todos (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
completed BOOLEAN DEFAULT FALSE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-
Clona este repositorio:
git clone https://github.com/urian121/construyendo-una-APIs-REST-con-Flask-y-MySQL cd construyendo-una-APIs-REST-con-Flask-y-MySQL
-
Crea un entorno virtual (opcional pero recomendado):
python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows
-
Instala las dependencias:
pip install -r requirements.txt
-
Configura la conexión a la base de datos:
- Abre
db.py
y actualiza los valores dehost
,user
,passwd
ydatabase
con tus credenciales de MySQL.
- Abre
-
Ejecuta la aplicación:
python app.py
La API estará disponible en http://localhost:5000
.
La API proporciona endpoints para gestionar tareas. A continuación, se detallan los endpoints disponibles.
Método HTTP | Endpoint | Descripción |
---|---|---|
GET |
/ |
Mensaje de bienvenida |
POST |
/todos |
Crear una nueva tarea |
GET |
/todos |
Obtener todas las tareas |
GET |
/todos/<int:todo_id> |
Obtener una tarea específica por su ID |
PUT |
/todos/<int:todo_id> |
Actualizar una tarea específica por su ID |
DELETE |
/todos/<int:todo_id> |
Eliminar una tarea específica por su ID |
Solicitud:
curl -X POST http://localhost:5000/todos
Respuesta:
{
"id": 1,
"title": "Comprar leche",
"completed": false,
"created_at": "2023-10-01T12:00:00"
}
Solicitud:
curl http://localhost:5000/todos
Respuesta:
[
{
"id": 1,
"title": "Comprar leche",
"completed": false,
"created_at": "2023-10-01T12:00:00"
},
{
"id": 2,
"title": "Estudiar Flask",
"completed": true,
"created_at": "2023-10-01T12:05:00"
}
]
Solicitud:
curl http://localhost:5000/todos/1
Respuesta:
{
"id": 1,
"title": "Comprar leche",
"completed": false,
"created_at": "2023-10-01T12:00:00"
}
Solicitud:
curl -X PUT http://localhost:5000/todos/1
Respuesta:
{
"id": 1,
"title": "Comprar pan",
"completed": true,
"created_at": "2023-10-01T12:00:00"
}
Solicitud:
curl -X DELETE http://localhost:5000/todos/1
Respuesta:
HTTP/1.1 204 No Content
✨ Comparte este proyecto con otros desarrolladores para que puedan beneficiarse 📢.
☕ Invítame un café o una cerveza 🍺:
⚡ ¡No olvides SUSCRIBIRTE a la Comunidad WebDeveloper!
- Dicen que trae buena suerte 🍀. Gracias por tu apoyo 🤓.