En este repositorio encontrán una API Rest desarrollada en Python con el framework Django y Django Rest Framework, así mismo se incluye archvo Dockerfile para el contendor de la django y Docker-compose para la orquestación de la base de datos en PostgreSQL y la web app en Django.
Estas instrucciones te permitirán obtener una copia del proyecto en funcionamiento en tu máquina local para propósitos de desarrollo y pruebas.
Se define el modelo Task de la siguiente forma:
description
date_task
duration
status
time_total
El campo status se deifne como entero, con el fin de poder realizar ordenamiento del listado de tareas mediante este campo, los números que se utilizan son:
1 -> pending
2 -> complete
El campo date_task nos sirve para poder asignarle la fecha en que hará la tarea al usuario que creó la misma, no se contempla la asignación de tareas por parte de un tercer usuario con mayor privilegios (permisos). Así mismo, podrémos realizar búsquedas de tareas mediante una fecha establecida.
Los datos que se ven en el listado y en las búsquedas son paginados y está establecido que son 10 datos que mostrará por página.
Es necesario tener instalados los siguiente programas para poder tener un entorno de desarrollo y hacer pruebas de forma local
-Python
-Docker
-Docker-compose
Para poder realizar la instalación de los Docker en Fedora 32/33 se deberán seguir los siguientes pasos
1. Actualizar los plugins de Fedora con el comando:
1. sudo dnf -y install dnf-plugins-core
2. Agregar el repositorio de docker al administrador de configuraciones de Fedora.
1. sudo dnf config-manager \ --add-repo \ https://download.docker.com/linux/fedora/docker-ce.repo
3. Instalando la última versión del motor de Docker:
1. sudo dnf install docker-ce docker-ce-cli containerd.io_
Comprobamos que se haya instalado correctamente Docker con los siguientes comandos
1. Iniciar el demonio de Docker con el comando:
1. sudo systemctl start docker
2. Verificamos que el motor de docker se haya instalado correctamente:
1. sudo docker run hello-world
Si la instalación fue correcta nos debe aparecer la siguiente leyenda:
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
Instalación de Docker-Compose
Para realizar la instalación de docker-compose, ya debemos de tener instalado Python, debido a que se utiliza el gestor de paquetes Pip, y Docker Engine.
Ejecutamos el siguiente comando para poder realizar la instalación de docker-compose.
sudo pip install docker-compose
Para ejecutar nos dirigimos en la terminal al path en donde se encuentra nuestro proyecto y ejecutamos los siguientes pasos:
1. docker-compose build
Este comando nos construirá los contenedores que se especificaron en el archivo docker-compose.yml, esperamos a que se termine de ejecutar el comando. Una vez que se terminó de construir nuestro contenedor, procedemos a ejecutar el siguiente comando:
2. docker-compose up
Este comando nos ayuda a levantar los contenedores, crea la conexión de red, la base de datos y ejecuta los comandos especificados en el apartado command del archivo docker-compose.yml, estos comandos que se ejecutan sirven para crear las migraciones, migrarlas a la base de datos y levantar el servicio de Django.
Estas pruebas nos proporcionan el buen uso de los endpoints creados para el manejo de las consultas en el proyecto Se realizan pruebas para las diferentes consultas GET, POST, PUT, PATCH, DELETE
- Django - El framework web usado
- Django Rest Framework - Contrucción de API's
- Eduardo Agreda López - Trabajo Inicial - eduardoagreda