FastAPI: Framework asíncrono para APIs modernas

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es FastAPI?

FastAPI es un framework web moderno y de alto rendimiento para crear APIs con Python. Desarrollado por Sebastián Ramírez, este framework está construido sobre los estándares OpenAPI y JSON Schema, lo que garantiza la generación automática de documentación y la tipificación de datos.

FastAPI aprovecha las últimas características de Python, como las anotaciones de tipo (type hints) y la programación asíncrona, convirtiéndolo en uno de los frameworks Python más rápidos para el desarrollo de APIs. En términos de rendimiento, es comparable con Node.js y Go, lo que lo hace ideal para aplicaciones de alta demanda.

Características clave de FastAPI

Alto rendimiento

FastAPI se basa en Starlette para la parte web y en Pydantic para la validación de datos. Esto ofrece un rendimiento al nivel de los frameworks Python más rápidos. El framework es totalmente compatible con ASGI (Asynchronous Server Gateway Interface), permitiendo manejar miles de conexiones simultáneas.

Documentación automática

Una de las principales ventajas de FastAPI es la generación automática de documentación interactiva para la API. El framework crea documentación en formato OpenAPI (Swagger) y proporciona dos interfaces:

  • Swagger UI — disponible en la ruta /docs
  • ReDoc — disponible en la ruta /redoc

Soporte completo de tipado

FastAPI utiliza las anotaciones de tipo estándar de Python para validar datos, serializar y generar documentación automáticamente. Esto garantiza un excelente autocompletado en el IDE y reduce los errores durante el desarrollo.

Validación de datos integrada

Gracias a la integración con Pydantic, FastAPI valida automáticamente los datos de entrada, convierte tipos y devuelve mensajes de error claros. Esto simplifica enormemente el desarrollo y mejora la fiabilidad de las aplicaciones.

Asincronía desde el inicio

FastAPI es totalmente compatible con la programación asíncrona mediante async/await. Esto permite crear aplicaciones de alto rendimiento capaces de manejar múltiples solicitudes simultáneas.

Instalación y configuración básica

Instalación de FastAPI

Para instalar FastAPI y todas las dependencias necesarias, usa el siguiente comando:

pip install fastapi[all]

Este comando instalará FastAPI junto con Uvicorn (servidor ASGI) y otras dependencias útiles.

Para una instalación mínima, usa:

pip install fastapi
pip install uvicorn[standard]

Creación de la primera aplicación

Crea un archivo main.py con una aplicación básica:

from fastapi import FastAPI

app = FastAPI(
    title="Mi proyecto FastAPI",
    description="Este es un ejemplo de aplicación FastAPI",
    version="1.0.0"
)

@app.get("/")
async def root():
    return {"message": "¡Bienvenido a FastAPI!"}

@app.get("/health")
async def health_check():
    return {"status": "ok"}

Ejecutar la aplicación

Inicia el servidor de desarrollo con Uvicorn:

uvicorn main:app --reload --host 0.0.0.0 --port 8000

Parámetros de inicio:

  • --reload — recarga automática al modificar el código
  • --host 0.0.0.0 — acepta conexiones desde todas las direcciones IP
  • --port 8000 — puerto para ejecutar el servidor

Trabajar con métodos HTTP

FastAPI admite todos los métodos HTTP estándar mediante decoradores:

Solicitudes GET

@app.get("/items/{item_id}")
async def get_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

@app.get("/items/")
async def get_items(skip: int = 0,                    

Recommendations