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.

Cuando una API comienza a crecer, poner todo el código en un solo archivo se vuelve difícil de mantener. Flask ofrece dos patrones clave para estructurar proyectos de forma ordenada: la fábrica de aplicaciones con create_app() y los Blueprints, que permiten agrupar rutas relacionadas en módulos independientes. Combinar ambos patrones desde el inicio facilita la escalabilidad, las pruebas y la colaboración en equipo.

Patrón de fábrica de aplicaciones

El patrón de fábrica de aplicaciones consiste en encapsular la creación de la instancia de Flask dentro de una función llamada create_app(), definida en el archivo __init__.py de la carpeta app. Esta función es responsable de:
  1. Instanciar Flask con app = Flask(__name__).
  2. Registrar los Blueprints mediante app.register_blueprint(...) junto con su prefijo de URL.
  3. Configurar CORS con CORS(app, origins="*") para controlar qué orígenes pueden consumir la API.
  4. Retornar la app lista para ser usada por run.py.
Este enfoque evita tener una variable global de la aplicación dispersa por todo el código y hace que la configuración sea más explícita y testeable.

Blueprints

Un Blueprint es un objeto que agrupa un conjunto de rutas (endpoints) relacionadas bajo un mismo nombre y prefijo de URL. En lugar de registrar todas las rutas directamente sobre la app, cada controlador define su propio Blueprint y la fábrica de aplicaciones se encarga de registrarlos. El siguiente ejemplo corresponde a la API de estudiantes del curso:
from flask import Flask
from flask_cors import CORS
from .controllers.estudiantes import estudiante_endpoint

def create_app():
    app = Flask(__name__)
    CORS(app)
    app.register_blueprint(estudiante_endpoint, url_prefix='/estudiante/api/v1')
    CORS(app, origin='*')
    return app

URL prefix

Cuando registrás un Blueprint con url_prefix, Flask construye la URL final concatenando el prefijo con el decorador @route del endpoint. Por ejemplo:
ParteValor
url_prefix en register_blueprint/estudiante/api/v1
@route en el controlador/hola
URL completahttp://127.0.0.1:5000/estudiante/api/v1/hola
Esta convención hace que sea fácil versionar la API (cambiando v1 a v2) y agrupar los endpoints de cada recurso bajo un mismo espacio de nombres.

Parámetros de consulta vs JSON body

El controlador estudiantes.py incluye tres rutas que ilustran las diferentes formas de recibir datos:
  • /hola — No recibe parámetros. Devuelve un saludo fijo.
  • /saludo — Recibe nombre y apellido desde el cuerpo JSON de la petición usando request.get_json().
  • /saludo-parametros — Recibe nombre y apellido como parámetros de consulta en la URL usando request.args.get().
Parámetros de consulta (query string) — se envían en la URL después del símbolo ? y se leen con request.args.get():
# URL: /saludo-parametros?nombre=Luis&apellido=Coto
nombre = request.args.get('nombre')
apellido = request.args.get('apellido')
JSON body — se envían en el cuerpo de la petición y se leen con request.get_json():
# Body: { "nombre": "Luis", "apellido": "Coto" }
data = request.get_json()
nombre = data.get('nombre')
apellido = data.get('apellido')
Para endpoints GET con filtros o búsquedas, la convención REST es usar parámetros de consulta. Para crear o actualizar recursos (POST, PUT, PATCH), se usa el JSON body. El ejemplo del curso incluye ambas variantes para que puedas compararlas lado a lado.

Herramientas para probar la API

Antes de conectar un frontend, es fundamental probar los endpoints de la API de forma manual. Las siguientes herramientas permiten enviar peticiones HTTP con distintos métodos, parámetros y cuerpos JSON:

Postman

La herramienta más popular para probar APIs. Permite organizar peticiones en colecciones, agregar variables de entorno y compartir configuraciones con el equipo.

Insomnia

Alternativa liviana a Postman con una interfaz limpia. Ideal para quienes buscan simplicidad sin sacrificar funcionalidades esenciales.
VS Code tiene un plugin oficial de Postman disponible en el Marketplace de VS Code. Con él podés crear y ejecutar peticiones HTTP directamente desde el editor, sin necesidad de cambiar de ventana mientras desarrollás.

Build docs developers (and LLMs) love