gcdoramas.com

Crear una API con Flask

Crear una API con Flask

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

@app.route("/api/usuarios", methods=["GET", "POST"])
def manejar_usuarios():

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

Puedes probar tu API con:

Navegador (GET)
Postman
Thunder Client (VS Code)
curl

Ejemplo:

curl http://localhost:5000/api/usuarios
Conectar API con base de datos

Ejemplo básico con SQL Server:

@app.route("/api/usuarios")
def usuarios():
conn = get_connection()
cursor = conn.cursor()

cursor.execute("SELECT id, nombre FROM usuarios")

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.

Con esto ya puedes construir:

Apps móviles
Paneles administrativos
Sistemas distribuidos