Guía Definitiva para Crear APIs RESTful con Python y Flask

Guía Definitiva para Crear APIs RESTful con Python y Flask

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

Introducción

En el mundo del desarrollo backend, crear APIs RESTful es una habilidad fundamental. Este tutorial te guiará desde cero para construir una API RESTful utilizando Python y el framework Flask. Diseñado para desarrolladores principiantes e intermedios, aprenderás a configurar el entorno, crear rutas, manejar solicitudes HTTP, integrar una base de datos SQLite y agregar autenticación básica.

Al final, tendrás una API funcional y preparada para seguir mejorando según tus necesidades.


Tabla de Contenidos

  1. Instalación del entorno
  2. Configuración inicial del proyecto
  3. Creación de rutas en Flask
  4. Manejo de solicitudes HTTP
  5. Integración con bases de datos SQLite
  6. Autenticación básica en la API
  7. Conclusión y buenas prácticas

Instalación del entorno

Para comenzar a desarrollar nuestra API RESTful con Flask, debemos instalar las herramientas necesarias.

Paso 1: Instalar Python

Asegúrate de tener Python 3 instalado en tu sistema. Puedes verificarlo ejecutando:

Si no lo tienes, descarga e instala la última versión desde python.org.

Paso 2: Crear un entorno virtual

Es recomendable trabajar en un entorno virtual para aislar las dependencias del proyecto.

Paso 3: Instalar Flask y extensión para base de datos

Instalamos Flask y Flask-SQLAlchemy para la integración con SQLite:

También instalaremos Flask-HTTPAuth para autenticación básica:


Configuración inicial del proyecto

Creamos una estructura simple para el proyecto:

Paso 1: Crear app.py

Este archivo contendrá nuestra aplicación Flask.

Paso 2: Configurar la app

Abrimos app.py y escribimos:

  • La URI sqlite:///api_database.db crea o conecta una base de datos local llamada api_database.db.

  • debug=True activa el modo depuración para desarrollo.


Creación de rutas en Flask

Las rutas permiten definir los puntos de acceso para nuestra API.

Paso 1: Crear ruta básica

Añadimos una ruta en app.py para verificar que la API está corriendo:

Paso 2: Crear rutas para recursos

Crearemos un recurso Libro como ejemplo con rutas para operaciones CRUD.


Manejo de solicitudes HTTP

Éstas son las operaciones principales que una API RESTful debe manejar.

Paso 1: Crear modelo de datos

En app.py definimos el modelo Libro:

Paso 2: Crear base de datos

Ejecutamos lo siguiente en un terminal interactivo de Python:

Esto crea la tabla Libro en api_database.db.

Paso 3: Añadir rutas CRUD

Ahora, definimos rutas para las operaciones fundamentales:

Estas rutas cubren las operaciones básicas: obtener (GET), crear (POST), actualizar (PUT) y eliminar (DELETE).


Integración con bases de datos SQLite

Ya integraste SQLite con Flask mediante SQLAlchemy, una poderosa ORM.

Explicación rápida

  • SQLAlchemy permite interactuar con SQLite usando código Python en vez de SQL directo.

  • El método db.create_all() crea las tablas usando la definición de clases que creamos.

  • La sesión db.session se usa para agregar, modificar y eliminar registros.

Puedes ejecutar tu API con:

Y acceder a:

  • http://127.0.0.1:5000/libros para obtener todos los libros.

  • Envío de JSON al endpoint /libros para crear nuevos.

Puedes probar usando herramientas como Postman o curl.


Autenticación básica en la API

Para asegurar nuestras rutas, añadiremos autenticación básica HTTP.

Paso 1: Configurar Flask-HTTPAuth

En app.py importamos e inicializamos:

Paso 2: Crear usuarios y passwords

Para este tutorial, usaremos un diccionario simple:

Paso 3: Proteger rutas

Añade el decorador @auth.login_required a las rutas que quieras proteger:

Ahora, para acceder a estas rutas será necesario enviar credenciales HTTP.

Paso 4: Probar la autenticación

Ejemplo con curl:

Esto devuelve la lista de libros sólo si el usuario y la contraseña son correctos.


Conclusión y buenas prácticas

En este tutorial, aprendiste cómo crear una API RESTful paso a paso con Python y Flask. Cubrimos la instalación del entorno, configuración del proyecto, creación y manejo de rutas HTTP, integración con una base de datos SQLite y la incorporación de autenticación básica.

Buenas prácticas para tus APIs Flask RESTful:

  • Estructura el proyecto, separando la lógica en distintos módulos o carpetas a medida que crezca.

  • Valida siempre los datos que recibes para evitar errores y vulnerabilidades.

  • Añade manejo de errores personalizado para devolver respuestas claras.

  • Usa autenticación y autorización robustas, considera JWT o OAuth para proyectos avanzados.

  • Documenta tu API con herramientas como Swagger o Postman.

¡Empieza a construir tu API y sigue explorando el desarrollo backend Flask para crear aplicaciones robustas y escalables!


¿Quieres aprender más sobre desarrollo backend y creación de APIs? ¡Sigue nuestro blog y suscríbete para recibir tutoriales actualizados!


Código completo mínimo ejemplo app.py


¡Feliz desarrollo de APIs con Flask!