Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/danielcruca/plataformas-abiertas-2026-2c/llms.txt

Use this file to discover all available pages before exploring further.

El proyecto integrador del curso combina tres capas principales: una API REST construida con Flask que actúa como backend, MongoDB Atlas como base de datos en la nube, y un cliente HTTP (Postman o navegador) que oficia de frontend o herramienta de pruebas. Esta arquitectura simple pero completa refleja patrones reales de desarrollo web moderno.

Componentes de la Arquitectura

  • Flask REST API (backend) — servidor Python que expone rutas HTTP y procesa la lógica de negocio mediante controladores organizados como Blueprints.
  • MongoDB Atlas (base de datos) — servicio de base de datos NoSQL en la nube donde se persisten y consultan los documentos JSON.
  • Cliente HTTP (frontend / testing) — herramienta como Postman o un navegador web que envía requests a la API y visualiza las respuestas JSON.

Estructura de Carpetas

El proyecto de la API sigue una estructura modular que separa el punto de entrada, la configuración de la aplicación y los controladores de cada recurso.
MI-CARPETA-DE-API/
│   readme.md
├───data/
└───v1/
    │   run.py
    └───app/
        │   __init__.py
        ├───controllers/
        │       holamundo.py
        ├───models/
        └───public/
Mantener los controladores en carpetas separadas facilita escalar el proyecto: cada nuevo recurso (usuarios, productos, etc.) simplemente agrega su propio archivo de Blueprint dentro de controllers/.

Descripción de cada archivo

ArchivoRol
run.pyPunto de entrada. Importa la app factory y arranca el servidor Flask.
app/__init__.pyApp factory: crea la instancia de Flask, registra los Blueprints y habilita CORS.
controllers/holamundo.pyBlueprint de ejemplo con los primeros endpoints del curso.
data/Carpeta destinada a archivos de datos locales o fixtures de prueba.

Ciclo de Vida de una Request

El siguiente flujo describe paso a paso qué sucede desde que el cliente envía una petición hasta que recibe la respuesta JSON.
1

El cliente envía la request

Un cliente HTTP (Postman, navegador, o curl) realiza una petición GET a una URL del servidor Flask, por ejemplo GET http://127.0.0.1:5000/holamundo-ejemplo/api/v1/holamundo.
2

Flask resuelve la ruta mediante el Blueprint

El router de Flask busca entre las rutas registradas a través de los Blueprints y encuentra la función asociada al patrón de URL recibido.
3

El controlador ejecuta la lógica de negocio

La función controladora se ejecuta: puede leer o escribir datos en MongoDB Atlas, aplicar validaciones, o simplemente construir una respuesta estática.
4

Flask devuelve la respuesta JSON

El controlador retorna un objeto JSON junto con el código de estado HTTP apropiado (por ejemplo 200 OK o 400 Bad Request), que Flask serializa y envía de vuelta al cliente.

Archivos Clave

run.py — Punto de entrada

from app import create_app

app = create_app()
# IMPORTANTE: recarga los cambios en el servidor
# Activa el modo debug.

if __name__ == "__main__":
    app.run(debug=True)

app/__init__.py — App factory

from flask import Flask
from flask_cors import CORS
# Importante: Aca se importa el controller.
from .controllers.holamundo import holamundo_endpoints


def create_app():
    # Importante: Usamos flask y flask_cors para crear la app.
    app = Flask(__name__)
    app.register_blueprint(holamundo_endpoints, url_prefix="/holamundo-ejemplo/api/v1")
    # IMPORTANTE: Esto es solo para probar, estamos permitiendo el acceso desde cualquier origen.
    # Esto es importante para cuando hagamos el frontend.
    CORS(app, origins="*")
    return app

controllers/holamundo.py — Blueprint de ejemplo

from flask import Blueprint, request, jsonify
# De momento no se usa el modelo.

holamundo_endpoints = Blueprint('holamundo_endpoints', __name__)

# GET http://127.0.0.1:5000/holamundo-ejemplo/api/v1/holamundo
@holamundo_endpoints.route('/holamundo', methods=['GET'])
def obtener_ventas():
    holaMundo = "hola mundo"
    return jsonify(holaMundo), 200  # la se convierte a JSON

# GET http://127.0.0.1:5000/holamundo-ejemplo/api/v1/saludo?nombre=Jose&apellido=Mujica
@holamundo_endpoints.route('/saludo', methods=['GET'])
def saludar():
    nombre = request.args.get('nombre')
    apellido = request.args.get('apellido')
    if not nombre or not apellido:
        return jsonify({'error': 'Faltan parámetros nombre o apellido'}), 400

    saludo = f"Hola {nombre} {apellido}"
    return jsonify({'saludo': saludo}), 200
Recordá registrar cada Blueprint en app/__init__.py usando app.register_blueprint(...) con su url_prefix correspondiente. Sin ese paso, Flask no expondrá las rutas del controlador.

Recursos Relacionados

API Flask

Paso a paso para crear tu primera API con Flask: configuración, rutas y Blueprints.

Base de Datos

Cómo conectar tu API Flask a MongoDB Atlas usando PyMongo.

Build docs developers (and LLMs) love