Tutorial Base: https://youtu.be/YENw-bNHZwg?si=9J8zq4_WKu-au9Jp

Código de GH: https://github.com/Nelly5469/hello-api

Hola mundo: API con Flask sin Docker

Entorno virtual

Es necesario tener instalado virtualenv , si aún no se tiene, se ejecuta pip install virtualenv .

Se crea el entorno virtual con virtualenv venv

Se activa el entorno virtual:

venv/Scripts/activate.bat en cmd hello_api\\venv\\Scripts> .\\activate.ps1 en powershell

Para comprobar si sí se activó se tiene que ver así: (venv) PS C:\\Users\\Nelly\\Documents\\propio\\api_gateway\\hello_api\\venv\\Scripts>

Framework web: Flask

Instalar pip install flask

Para ejecutar la app:

(venv) PS C:\\Users\\Nelly\\Documents\\propio\\api_gateway\\hello_api> python src/app.py
 * Serving Flask app 'app'
 * Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on all addresses (0.0.0.0)
 * Running on <http://127.0.0.1:4000>
 * Running on <http://10.13.27.12:4000>
Press CTRL+C to quit
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 773-207-946
127.0.0.1 - - [04/Jul/2025 12:32:15] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [04/Jul/2025 12:32:15] "GET /favicon.ico HTTP/1.1" 404 -
10.13.27.12 - - [04/Jul/2025 12:32:20] "GET / HTTP/1.1" 200 -
10.13.27.12 - - [04/Jul/2025 12:32:20] "GET /favicon.ico HTTP/1.1" 404 -

La primera ip es para el localhost y la segunda para cualquier dispositivo que esté conectada a la misma red que el localhost

Hola mundo: con Docker

Dockerfile

FROM ubuntu:20.04

# Actualiza el sistema e instala Python y pip
RUN apt-get update && apt-get install -y \\
    python3-dev \\
    python3-pip \\
    && apt-get clean \\
    && rm -rf /var/lib/apt/lists/*

# Actualiza pip a la última versión
RUN pip3 install --upgrade pip

# New workdir called app
WORKDIR /app

# Copy current files to app
COPY . /app

# Install pip3 libraries from requirements.txt
RUN pip3 --no-cache-dir install -r requirements.txt

CMD ["python3", "src/app.py"]

Determina los detalles de creación de una imagen (la cual se usará para ejecutar el contenedor)

(venv) C:\\Users\\Nelly\\Documents\\propio\\api_gateway\\hello_api>pip freeze > requirements.txt 

Copiar las librerías requeridas en requirements.txt