API REST desarrollada con Python y Django para la gestión de tareas, utilizando PostgreSQL como base de datos y Docker para la contenerización del entorno.
Este proyecto implementa una API REST básica que permite realizar operaciones CRUD (Create, Read, Update, Delete) sobre tareas.
El entorno está completamente dockerizado para facilitar su ejecución y garantizar reproducibilidad entre diferentes máquinas y sistemas operativos.
- Python 3.11+
- Django 4.x
- PostgreSQL 15
- Docker & Docker Compose
- Postman (pruebas de API)
- API REST con respuestas JSON
- Persistencia de datos en PostgreSQL
- Contenedores Docker para aplicación y base de datos
- ORM nativo de Django
- Operaciones CRUD completas
- Configuración mediante variables de entorno
- Recarga automática en desarrollo
Antes de ejecutar el proyecto es necesario tener instalado:
- Docker Desktop
- Git
- Python 3.11+ (opcional para desarrollo local)
- Postman o cliente HTTP similar
Crear un archivo .env con las configuraciones necesarias.
Ejemplo:
DB_NAME=todo_db
DB_USER=todo_user
DB_PASSWORD=password
DB_HOST=db
DB_PORT=5432
SECRET_KEY=django-secret-key
DEBUG=Truegit clone <URL_DEL_REPOSITORIO>
cd <NOMBRE_DEL_PROYECTO>Primera ejecución:
docker compose up --buildEjecuciones posteriores:
docker compose upVerificar estado:
docker compose psAplicar migraciones manualmente:
docker compose exec web python manage.py migrateCrear nuevas migraciones:
docker compose exec web python manage.py makemigrationsSi las migraciones están automatizadas en el contenedor, este paso no será necesario.
Base URL:
http://localhost:8000/api/
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /tareas/ | Listar tareas |
| POST | /tareas/ | Crear tarea |
| GET | /tareas/{id}/ | Obtener tarea |
| PUT | /tareas/{id}/ | Actualizar tarea |
| DELETE | /tareas/{id}/ | Eliminar tarea |
Crear tarea:
{
"titulo": "Aprender Django",
"descripcion": "Construir primera API REST",
"completada": false
}Respuesta esperada:
{
"id": 1,
"titulo": "Aprender Django",
"descripcion": "Construir primera API REST",
"completada": false
}El flujo básico de la aplicación es:
- Cliente envía petición HTTP
- Django enruta la solicitud
- Las vistas procesan la lógica
- El ORM interactúa con PostgreSQL
- Django responde en JSON
Las pruebas de endpoints pueden realizarse con Postman o cualquier cliente HTTP.
Verificar funcionamiento accediendo a:
http://localhost:8000/api/
Si la API está funcionando correctamente, se obtendrá una respuesta JSON.
Proyecto académico / demostrativo para aprendizaje de APIs REST con Django, PostgreSQL y Docker.