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

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

Tutorial FastAPI Python: Cómo Crear una API RESTful Paso a Paso

FastAPI es uno de los frameworks más populares para construir APIs RESTful con Python, gracias a su sencillez, rapidez y soporte para validación de datos mediante Pydantic. En este tutorial detallado, aprenderás desde la instalación hasta cómo crear rutas CRUD, manejar errores, integrar una base de datos SQLite con SQLAlchemy y probar tu API. Es ideal para desarrolladores principiantes e intermedios que quieran iniciarse en el desarrollo backend moderno con Python.


Índice


1. Instalación y Configuración del Entorno

Paso 1: Crear y activar un entorno virtual

Para aislar tus dependencias, es recomendable usar un entorno virtual.

Paso 2: Instalar FastAPI y Uvicorn

FastAPI es el framework y Uvicorn es un servidor ASGI ligero para correr la aplicación.

Paso 3: Crear la estructura inicial

Crea un archivo llamado main.py donde estará nuestra API.


2. Creación de la API Básica con Rutas CRUD

Vamos a construir una API básica para gestionar “items” (elementos) con operaciones CRUD: Crear, Leer, Actualizar y Eliminar.

Paso 1: Estructura básica con FastAPI

Este código crea dos rutas:

  • GET para listar items
  • POST para añadir un item

Paso 2: Añadir rutas para Leer, Actualizar y Eliminar por ID


3. Validación de Datos con Pydantic

FastAPI utiliza Pydantic para definir modelos y validar automáticamente los datos recibidos.

Paso 1: Definir el modelo Item con Pydantic

Paso 2: Usar el modelo para validar las rutas POST y PUT

Ahora FastAPI valida automáticamente que los datos enviados coincidan con el esquema Item. Esto previene errores y mejora la robustez.


4. Manejo de Respuestas y Errores

Para una API profesional, debes manejar adecuadamente respuestas y errores.

Usar códigos HTTP adecuados

Manejo personalizado de errores

FastAPI provee clases para lanzar excepciones HTTP que se traducen correctamente en las respuestas de la API.


5. Integración con SQLite y SQLAlchemy

Guardar datos en memoria no es viable para producción. Veamos cómo integrar FastAPI con SQLite usando SQLAlchemy.

Paso 1: Instalar dependencias necesarias

Para este ejemplo usaremos SQLAlchemy 1.4 o superior con soporte asíncrono.

Paso 2: Configurar la base de datos y modelos

Crea un archivo database.py:

Paso 3: Crear la base de datos

Puedes ejecutarlo en un script aparte o dentro de main.py si es apropiado.

Paso 4: Añadir dependencia para obtener sesión de DB

Paso 5: Actualizar rutas para usar base de datos


6. Pruebas Básicas con Postman y curl

Para probar la API, usaremos herramientas comunes.

Probar con curl

  • Crear un item

  • Obtener un item

  • Actualizar un item

  • Eliminar un item

Probar con Postman

  1. Abre Postman.
  2. Crea una nueva petición.
  3. Selecciona el método HTTP (GET, POST, PUT, DELETE).
  4. Pon la URL (p.ej. http://127.0.0.1:8000/items/).
  5. Si haces POST o PUT, en la pestaña “Body”, selecciona “raw” y “JSON”. Pega el JSON con los datos.
  6. Envía la petición y revisa la respuesta.

Conclusión y Buenas Prácticas

En este tutorial FastAPI Python has aprendido:

  • Cómo instalar y configurar un entorno para FastAPI.
  • Crear rutas básicas CRUD para una API RESTful.
  • Validar y serializar datos con Pydantic.
  • Manejar respuestas y errores adecuadamente.
  • Integrar la API con una base de datos SQLite usando SQLAlchemy.
  • Probar tu API con herramientas como Postman y curl.

Buenas prácticas recomendadas:

  • Define modelos claros con Pydantic para validar datos.
  • Maneja excepciones y devuelve mensajes claros para el cliente.
  • Utiliza dependencias para manejar conexiones a la base de datos.
  • Mantén tu código modular y bien documentado.
  • Escribe tests automatizados para asegurar la calidad.
  • Usa migraciones (ej. Alembic) cuando trabajes con modelos y base de datos.

Ahora estás listo para expandir esta API, agregar autenticación, pagination, documentación automática y mucho más.

¡Empieza a crear APIs REST con FastAPI para principiantes y avanza en el desarrollo backend Python moderno!


Ejecutar servidor

Para iniciar la API, usa:

El flag --reload recarga el servidor automáticamente al cambiar código.


¡Gracias por leer este tutorial FastAPI Python!