Cómo Construir una API RESTful con Python y Flask Paso a Paso

Cómo Construir una API RESTful con Python y Flask Paso a Paso

Cómo Crear una API RESTful con Python y Flask: Tutorial Paso a Paso

Introducción

Si estás interesado en el desarrollo backend con Flask y quieres aprender a crear una API RESTful Python desde cero, este tutorial es para ti. Aquí, te guiaré paso a paso para que puedas construir una API sencilla pero completa, abarcando desde la instalación y configuración del entorno, hasta la creación de rutas, manejo de peticiones HTTP (GET, POST, PUT, DELETE), gestión de errores y conexión a una base de datos básica.

Este Flask tutorial está pensado tanto para desarrolladores principiantes como para quienes tienen conocimientos intermedios y desean adentrarse en el mundo del backend con Python.


Índice

  1. Qué es una API RESTful y por qué usar Flask
  2. Instalación y configuración del entorno
  3. Creación básica de la API en Flask
  4. Manejo de peticiones HTTP
  • GET
  • POST
  • PUT
  • DELETE
  1. Manejo de errores en la API
  2. Conexión a una base de datos sencilla con SQLite
  3. Conclusión y buenas prácticas

1. Qué es una API RESTful y por qué usar Flask

Una API RESTful es una interfaz de programación que sigue los principios REST (Representational State Transfer) para facilitar la comunicación entre un cliente y un servidor. Se basa en el protocolo HTTP y sus métodos (GET, POST, etc.) para realizar distintas operaciones.

Flask es un micro framework para Python que facilita la creación de aplicaciones web y APIs debido a su simplicidad y flexibilidad, ideal para proyectos pequeños y medianos.


2. Instalación y configuración del entorno

Antes de comenzar a programar, necesitamos configurar nuestro entorno de trabajo.

Paso 1: Instalar Python

Asegúrate de tener instalada la versión 3.6 o superior de Python. Puedes verificarlo con:

Paso 2: Crear un entorno virtual

Para evitar conflictos con otras librerías, crea un entorno virtual:

Activa el entorno virtual:

  • En Windows:

  • En macOS/Linux:

Paso 3: Instalar Flask

Instala Flask usando pip:

Paso 4 (opcional): Instalar SQLite si deseas usar base de datos

SQLite viene preinstalado con Python en la mayoría de las distribuciones, por lo que no deberías necesitar instalar nada extra.


3. Creación básica de la API en Flask

Ahora sí, empecemos a construir nuestra API.

Paso 1: Crear archivo principal

Crea un archivo llamado app.py.

Paso 2: Código básico para levantar el servidor

Paso 3: Ejecutar la aplicación

En la terminal, corre:

Abre tu navegador en http://127.0.0.1:5000/ y deberías ver el mensaje.


4. Manejo de peticiones HTTP

Las APIs RESTful se basan en el uso de métodos HTTP para realizar operaciones. Veamos cómo implementarlos.

Crearemos una API para manejar una lista de tareas (to-do list).

Agrega este código en app.py:

Explicación paso a paso:

  • Definimos una lista tareas como nuestro “almacén” temporal.
  • GET /api/tareas: devuelve todas las tareas.
  • GET /api/tareas/<id>: devuelve una tarea específica o un error 404.
  • POST /api/tareas: crea una nueva tarea basándose en los datos JSON recibidos.
  • PUT /api/tareas/<id>: actualiza una tarea existente.
  • DELETE /api/tareas/<id>: elimina una tarea específica.

Puedes probar estas rutas usando herramientas como Postman o curl.

Ejemplo de petición POST con curl:


5. Manejo de errores en la API

El manejo adecuado de errores mejora la experiencia del usuario y facilita la depuración.

Modificamos el código para personalizar los errores:

Agrega estas funciones en tu archivo, y Flask retornará mensajes JSON amigables para estos casos.


6. Conexión a una base de datos sencilla con SQLite

Para que los datos persistan y no dependan de listas en memoria, conectemos la API a una base de datos SQLite.

Paso 1: Instalar SQLAlchemy

SQLAlchemy es un ORM que facilita la interacción con bases de datos.

Paso 2: Configurar la base de datos en app.py

Paso 3: Modificar rutas para usar la base de datos

Ejemplo para obtener todas las tareas:

Si deseas, puedo ayudarte a adaptar todas las rutas para integrar SQLAlchemy. Aquí el objetivo principal es mostrar cómo conectar la base SQLite para persistencia.


7. Conclusión y buenas prácticas

En este tutorial, aprendiste a crear una API RESTful Python utilizando Flask, desde la instalación y configuración del entorno hasta la conexión con una base de datos SQLite usando SQLAlchemy.

Buenas prácticas:

  • Usa entornos virtuales para aislar dependencias.
  • Utiliza validación y manejo de errores para responder con mensajes claros.
  • Divide tu código en módulos o blueprints para mantenerlo organizado.
  • Implementa autenticación si la API será pública o crítica.
  • Prueba tus endpoints con herramientas como Postman o curl.
  • Documenta tu API, puedes usar Swagger o Postman para facilitar el uso.

¿Qué sigue?

Ahora que sabes cómo crear una API básica, te invito a que amplíes la funcionalidad agregando autenticación (JWT), paginación, filtros y tests automáticos.


¿Listo para llevar tu desarrollo backend Flask al siguiente nivel? Comienza ahora mismo a crear tu propia API con Python siguiendo estos pasos y mejora tus proyectos con servicios robustos y escalables.


Recursos adicionales

¡Feliz desarrollo!