Paso a Paso para Crear una API RESTful con Flask en Python

Paso a Paso para Crear una API RESTful con Flask en Python

Tutorial Completo para Crear una API RESTful con Flask en Python

Si estás comenzando en el desarrollo backend en Python y quieres aprender a construir una API RESTful desde cero, este tutorial es para ti. Aquí te guiaré paso a paso para que, aunque seas principiante, entiendas cómo crear una API usando Flask, uno de los frameworks más populares y sencillos de Python.

¿Qué aprenderás en este tutorial?

  • Instalación y configuración del entorno para Flask
  • Concepto de rutas y métodos HTTP (GET, POST, PUT, DELETE)
  • Manejo de datos en formato JSON
  • Uso de la extensión Flask-RESTful para simplificar el desarrollo
  • Buenas prácticas y recomendaciones para programación Flask para principiantes

¡Vamos allá!


1. Instalación y Configuración del Entorno

Antes de escribir código, debes preparar tu entorno de desarrollo.

Paso 1: Instalar Python

Asegúrate de tener Python instalado (versión 3.6 o superior). Puedes verificarlo con:

Si no está instalado, descárgalo en python.org.

Paso 2: Crear un entorno virtual (opcional pero recomendado)

Los entornos virtuales permiten aislar las dependencias de tu proyecto.

Paso 3: Instalar Flask y Flask-RESTful

Ejecuta el siguiente comando para instalar Flask y Flask-RESTful:

Para verificar la instalación:

Ahora tienes todo listo.


2. Primeros Pasos con Flask: Rutas y Métodos HTTP

Una API RESTful utiliza rutas (endpoints) y métodos HTTP para interactuar con los datos.

Crear la estructura básica de la aplicación

Crea un archivo llamado app.py con el siguiente contenido:

Para ejecutar la app:

Abre tu navegador en http://127.0.0.1:5000/ y verás el mensaje.

Explicación

  • @app.route: Define una ruta o endpoint.
  • methods=['GET']: Este endpoint solo responde a peticiones GET.
  • app.run(debug=True): Ejecuta la app con modo debug para desarrollo.

Probemos otros métodos HTTP

Flask soporta los métodos HTTP comunes usados en APIs:

| Método | Función |
|——–|———————————|
| GET | Obtener recursos/data |
| POST | Crear nuevo recurso |
| PUT | Actualizar recurso existente |
| DELETE | Eliminar recurso |

Puedes modificar la ruta para aceptar otros métodos; por ejemplo:

Con esto, cuando envíes un POST con JSON { "nombre": "Juan" }, la respuesta será un saludo personalizado.


3. Manejo de Datos en Formato JSON

El formato estándar para APIs es JSON. Veamos cómo enviar y recibir JSON en Flask.

Enviando JSON de respuesta

Utiliza jsonify() para devolver respuestas JSON:

Recibiendo JSON en las peticiones

Desde el cliente puedes enviar datos en JSON con POST o PUT, y acceder a ellos con request.get_json():

Para probar esto puedes usar herramientas como Postman o cURL:


4. Usando Flask-RESTful para Simplificar el Desarrollo

Flask-RESTful facilita la creación de APIs con clases y gestión automática de rutas.

Paso 1: Importar y crear API

Modifica tu archivo app.py así:

Aquí estamos definiendo una clase HolaMundo que maneja el método GET para la ruta /.

Paso 2: Crear un recurso con métodos CRUD

Vamos a simular una lista de productos en memoria:

Cómo funciona:

  • /productos GET: Lista todos los productos
  • /productos POST: Crea un producto nuevo
  • /productos/<producto_id> GET: Obtiene un producto específico
  • /productos/<producto_id> PUT: Actualiza un producto
  • /productos/<producto_id> DELETE: Elimina un producto

Prueba estas rutas con Postman o cURL para familiarizarte.


5. Buenas prácticas para desarrollar APIs con Flask

  • Usa entornos virtuales para manejar dependencias.
  • Documenta tus endpoints con comentarios o herramientas como Flask-RESTX.
  • Valida los datos de entrada para evitar errores o vulnerabilidades.
  • Maneja adecuadamente los códigos HTTP (ejemplo: 200, 201, 404).
  • Estructura tu proyecto en varios archivos para mantener el código ordenado.
  • Usa herramientas de testing para probar tu API.

Conclusión: ¡Tu API RESTful con Flask está lista para crecer!

En este tutorial has aprendido cómo configurar un entorno, crear rutas básicas y trabajar con métodos HTTP para construir una API RESTful en Python usando Flask y Flask-RESTful. Está es la base para crear aplicaciones backend robustas y escalables.

¿Qué sigue?

  • Integra una base de datos como SQLite o PostgreSQL
  • Agrega autenticación y autorización
  • Implementa testing automatizado

¡No pares de practicar y mejorar tus APIs!

Si te gustó este tutorial, comparte y comenta tus avances o dudas. ¡Feliz programación con Flask!