Tutorial Completo para Crear una API RESTful con Flask y Python

Tutorial Completo para Crear una API RESTful con Flask y Python

Tutorial completo: Cómo construir una API RESTful con Flask y Python

Aprender a crear una API RESTful con Python es un paso fundamental para cualquier desarrollador backend. En este tutorial, te guiamos paso a paso en la creación de una API utilizando Flask, un microframework ligero y poderoso que facilita el desarrollo backend. Este artículo es perfecto para desarrolladores principiantes e intermedios que desean iniciarse en el desarrollo backend Flask y crear APIs robustas, escalables y fáciles de mantener.


Índice


Introducción Flask y las APIs RESTful

Una API RESTful (Representational State Transfer) define un conjunto de reglas para crear servicios web escalables y fáciles de consumir. Flask es un microframework ligero de Python que permite construir APIs rápidas y modulares.

Convertirse en un experto en API RESTful con Python y específicamente en desarrollo backend Flask te abre puertas en el mundo del desarrollo web y móvil.


Paso 1: Instalación y configuración del entorno

Requisitos previos:

  • Python 3.7 o superior instalado
  • pip para instalar paquetes

1. Crear un entorno virtual

Esta es la mejor práctica para administrar dependencias:

2. Instalar Flask y librerías necesarias

Nota: psycopg2-binary es para conectarse a PostgreSQL.


Paso 2: Creando nuestra primera ruta y endpoint

Vamos a crear un archivo app.py con el siguiente contenido que define una ruta básica:

Explicación

  • Importamos Flask y jsonify para devolver JSON
  • Creamos aplicación Flask
  • Definimos ruta raíz / que responde con un mensaje JSON
  • Ejecutamos el servidor en modo debug para desarrollo

Para ejecutar:

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


Paso 3: Manejo de métodos HTTP (GET, POST, PUT, DELETE)

En REST, los métodos HTTP indican la acción que queremos sobre un recurso.

Ejemplo básico con un recurso “items”:

Explicación paso a paso

  • En /items:
  • GET devuelve lista completa
  • POST añade un nuevo ítem
  • En /items/<item_id>:
  • GET obtiene un ítem por id
  • PUT actualiza nombre del ítem
  • DELETE elimina el ítem

Prueba con herramientas como Postman o curl para enviar solicitudes HTTP.


Paso 4: Validación de datos en la API

Es fundamental validar los datos recibidos para garantizar integridad.

Ejemplo simple usando Python:

Para validaciones más avanzadas, se recomienda usar librerías como marshmallow o pydantic.


Paso 5: Integración con bases de datos (SQLite y PostgreSQL)

1. Configuración de la base de datos con SQLAlchemy

Primero, agregamos conexión a base de datos.

2. Reescribir endpoints para usar base de datos

3. Usar PostgreSQL

Solo necesitas cambiar la URI de SQLAlchemy:

Recuerda instalar y tener configurado PostgreSQL localmente o usar un servicio externo.


Paso 6: Pruebas básicas de la API

Una buena práctica es probar tu API regularmente.

Usando curl desde una terminal:

  • Obtener todos los items:

  • Crear un item:

  • Actualizar item con id 1:

  • Eliminar item con id 1:

Usando Postman

Postman es una herramienta visual que facilita el envío de peticiones y el seguimiento de respuestas. Descárgalo e importa tu colección para empezar a probar.


Conclusión y buenas prácticas {#conclusión-y-buenas-prácticas}

Has aprendido cómo construir una API RESTful con Python y Flask, manejando diferentes métodos HTTP, validación básica de datos, e integración con bases de datos SQLite y PostgreSQL.

Buenas prácticas para seguir:

  • Usa entornos virtuales para manejar dependencias
  • Implementa validaciones robustas usando librerías externas
  • Aplica paginación y filtros para mejorar el rendimiento
  • Maneja errores y retorna respuestas claras
  • Usa migraciones de base de datos con Flask-Migrate
  • Documenta tu API con herramientas como Swagger o Flasgger
  • Prueba tu API con frameworks como pytest o herramientas externas

Invitamos a que experimentes extendiendo esta API, agregando autenticación, paginación y más.

¡Comienza hoy mismo y domina el desarrollo backend Flask con este tutorial Flask API!