Crear una API REST con Flask paso a paso
¿Qué es una API REST?
Una API (Interfaz de Programación de Aplicaciones) permite que diferentes sistemas se comuniquen entre sí.
Una API REST usa HTTP para enviar y recibir datos, normalmente en formato JSON.
Ejemplo:
Una app móvil consulta datos de tu servidor
Un frontend (JavaScript) consume tu backend
Sistemas externos se integran con tu aplicación
¿Por qué usar Flask para APIs?
Flask es ideal para crear APIs porque:
Es ligero y rápido
Fácil de aprender
Muy flexible
Perfecto para microservicios
Estructura básica de una API
Una API en Flask devuelve datos (no HTML):
from flask import Flask, jsonify
app = Flask(__name__)
@app.route("/api")
def api():
return jsonify({"mensaje": "API funcionando"})
¿Qué es jsonify?
jsonify() convierte datos de Python a formato JSON automáticamente:
{
"mensaje": "API funcionando"
}
Crear un endpoint real
@app.route("/api/usuarios")
def usuarios():
data = [
{"id": 1, "nombre": "Juan"},
{"id": 2, "nombre": "Ana"}
]
return jsonify(data)
Métodos HTTP en una API
Las APIs usan diferentes métodos:
GET → obtener datos
POST → crear datos
PUT → actualizar
DELETE → eliminar
Ejemplo con GET y POST
from flask import request
if request.method == "GET":
return jsonify([{"id": 1, "nombre": "Juan"}])
if request.method == "POST":
data = request.get_json()
nombre = data.get("nombre")
return jsonify({"mensaje": f"Usuario {nombre} creado"})
Probar la API
resultados = [
{"id": row.id, "nombre": row.nombre}
for row in cursor
]
conn.close()
return jsonify(resultados)
Manejo de errores
@app.errorhandler(404)
def no_encontrado(error):
return jsonify({"error": "Ruta no encontrada"}), 404
Buenas prácticas
Si quieres una API profesional:
Usa rutas claras (/api/usuarios)
Devuelve JSON siempre
Usa códigos de estado HTTP (200, 404, 500)
Valida datos de entrada
Separa lógica en módulos
Estructura recomendada
/proyecto
│
├── app.py
├── db.py
├── routes/
│ └── usuarios.py
Seguridad básica
No ignores esto:
Valida datos del usuario
Evita inyección SQL
Usa autenticación (tokens, JWT)
Limita accesos si es necesario
Conclusión
Crear una API con Flask te permite conectar tu backend con cualquier frontend o sistema externo. Es una de las habilidades más importantes en el desarrollo moderno.