Este es un proyecto de API REST simple, creado con Python y Flask, que permite a los usuarios gestionar una lista de tareas. Es un proyecto de portafolio enfocado en demostrar los fundamentos del desarrollo backend, la creación de endpoints CRUD y la interacción con una base de datos SQL.
- Python 3: Lenguaje principal.
- Flask: Micro-framework para crear la API.
- SQLite3: Base de datos SQL ligera para el almacenamiento de datos.
Sigue estos pasos para levantar el proyecto localmente.
git clone https://github.com/VitoNez5198/ToDo_API.git
cd ToDo_API
Crear el entorno virtual.
python -m venv venv
Activar en Windows (Git Bash).
source venv/Scripts/activate
Asegúrate de tener el entorno activado.
pip install -r requirements.txt
flask run
La API ahora estará corriendo en http://127.0.0.1:5000
Puedes usar Postman o cURL para probar los endpoints.
- Método:
GET - Ruta:
/tareas - Respuesta Exitosa (200):
[
{
"id": 1,
"titulo": "Aprender Flask",
"descripcion": "Crear mi primer endpoint",
"estado": "pendiente"
},
{
"id": 2,
"titulo": "Escribir README",
"descripcion": "Documentar el proyecto",
"estado": "completada"
}
]- Método:
GET - Ruta:
/tareas/<id>(Ej:/tareas/1) - Respuesta Exitosa (200):
{
"id": 1,
"titulo": "Aprender Flask",
"descripcion": "Crear mi primer endpoint",
"estado": "pendiente"
}- Respuesta de Error (404):
{
"message": "Tarea no encontrada"
}- Método:
POST - Ruta:
/tareas - Cuerpo (Body) - JSON Requerido:
{
"titulo": "Mi Nueva Tarea",
"descripcion": "Esta es la descripción (opcional)."
}- Respuesta Exitosa (201):
{
"id": 3,
"titulo": "Mi Nueva Tarea",
"descripcion": "Esta es la descripción (opcional).",
"estado": "pendiente"
}- Método:
PUT - Ruta:
/tareas/<id>(Ej:/tareas/3) - Cuerpo (Body) - JSON (envía solo lo que quieras cambiar):
{
"titulo": "Título Actualizado",
"estado": "completada"
}- Respuesta Exitosa (200):
{
"id": 3,
"titulo": "Título Actualizado",
"descripcion": "Esta es la descripción (opcional).",
"estado": "completada"
}- Método:
DELETE - Ruta:
/tareas/<id>(Ej:/tareas/3) - Respuesta Exitosa (200):
{
"message": "Tarea con ID 3 eliminada exitosamente"
}