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 conDocumentation 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.
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 llamadacreate_app(), definida en el archivo __init__.py de la carpeta app. Esta función es responsable de:
- Instanciar Flask con
app = Flask(__name__). - Registrar los Blueprints mediante
app.register_blueprint(...)junto con su prefijo de URL. - Configurar CORS con
CORS(app, origins="*")para controlar qué orígenes pueden consumir la API. - Retornar la app lista para ser usada por
run.py.
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:URL prefix
Cuando registrás un Blueprint conurl_prefix, Flask construye la URL final concatenando el prefijo con el decorador @route del endpoint. Por ejemplo:
| Parte | Valor |
|---|---|
url_prefix en register_blueprint | /estudiante/api/v1 |
@route en el controlador | /hola |
| URL completa | http://127.0.0.1:5000/estudiante/api/v1/hola |
v1 a v2) y agrupar los endpoints de cada recurso bajo un mismo espacio de nombres.
Parámetros de consulta vs JSON body
El controladorestudiantes.py incluye tres rutas que ilustran las diferentes formas de recibir datos:
/hola— No recibe parámetros. Devuelve un saludo fijo./saludo— Recibenombreyapellidodesde el cuerpo JSON de la petición usandorequest.get_json()./saludo-parametros— Recibenombreyapellidocomo parámetros de consulta en la URL usandorequest.args.get().
? y se leen con request.args.get():
request.get_json():
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.