Skip to content

Issasep/tutorial-django-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API REST con Django, PostgreSQL y Docker

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.

Descripción

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.

Tecnologías utilizadas

  • Python 3.11+
  • Django 4.x
  • PostgreSQL 15
  • Docker & Docker Compose
  • Postman (pruebas de API)

Características

  • 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

Requisitos

Antes de ejecutar el proyecto es necesario tener instalado:

  • Docker Desktop
  • Git
  • Python 3.11+ (opcional para desarrollo local)
  • Postman o cliente HTTP similar

Variables de entorno

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=True

Instalación y ejecución

1. Clonar el repositorio

git clone <URL_DEL_REPOSITORIO>
cd <NOMBRE_DEL_PROYECTO>

2. Construir y levantar contenedores

Primera ejecución:

docker compose up --build

Ejecuciones posteriores:

docker compose up

Verificar estado:

docker compose ps

Migraciones

Aplicar migraciones manualmente:

docker compose exec web python manage.py migrate

Crear nuevas migraciones:

docker compose exec web python manage.py makemigrations

Si las migraciones están automatizadas en el contenedor, este paso no será necesario.

Endpoints disponibles

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

Ejemplo de petición POST

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
}

Arquitectura general

El flujo básico de la aplicación es:

  1. Cliente envía petición HTTP
  2. Django enruta la solicitud
  3. Las vistas procesan la lógica
  4. El ORM interactúa con PostgreSQL
  5. Django responde en JSON

Pruebas

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.

Autoría

Proyecto académico / demostrativo para aprendizaje de APIs REST con Django, PostgreSQL y Docker.

About

Apliacion de gestion de tareas con Pyhton+Django+PostgreSQL

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors