¿Qué es FastAPI?
FastAPI es un framework web moderno y rápido para construir APIs con Python. Se ha popularizado en los últimos años por su alto rendimiento, facilidad de uso y su soporte nativo para tipado de datos usando Python 3.6+. Además, FastAPI utiliza Starlette como motor de alto rendimiento y Pydantic para la validación de datos.
Si te preguntas ¿Qué es FastAPI y cómo usarlo para APIs rápidas?, la respuesta es simple: FastAPI es una herramienta que te permite desarrollar servicios web y microservicios de manera eficiente, rápida y con un código muy limpio.
Ventajas de FastAPI para crear APIs eficientes
- Rendimiento sobresaliente: Comparable a frameworks como NodeJS y Go.
- Desarrollo rápido: Gracias a la generación automática de documentación.
- Validación automática: Usa anotaciones de tipo para validar peticiones y respuestas.
- Documentación interactiva: Incluye Swagger UI y Redoc automáticamente.
- Soporte para asíncronía: Permite construir endpoints asíncronos fácilmente.
¿Cómo instalar FastAPI y Uvicorn?
Para comenzar a usar FastAPI y crear APIs rápidas y eficientes, primero necesitas instalar FastAPI y un servidor ASGI como Uvicorn. Puedes hacerlo con pip:
pip install fastapi uvicorn
Primeros pasos: Crear tu primera API con FastAPI
Veamos cómo crear una API rápida con FastAPI en unos pocos pasos.
Paso 1: Crear el archivo principal
Crea un archivo llamado main.py
y añade el siguiente código:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"mensaje": "¡Hola, FastAPI!"}
Paso 2: Ejecutar el servidor
Para arrancar tu API, ejecuta este comando en tu terminal:
uvicorn main:app --reload
El parámetro –reload permite que el servidor se reinicie automáticamente al detectar cambios en el código, ideal para desarrollo.
Paso 3: Probar la API y la documentación automática
Accede a http://localhost:8000/ para ver la respuesta JSON. Para ver la documentación interactiva, visita:
- Swagger UI: http://localhost:8000/docs
- Redoc: http://localhost:8000/redoc
¿Cómo usar FastAPI para crear endpoints avanzados?
Parámetros de ruta y consulta
Puedes definir parámetros en la ruta y parámetros de consulta fácilmente:
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
Aquí, item_id es obligatorio y se extrae de la ruta, mientras que q es opcional y se extrae de la consulta.
Validación de datos con Pydantic
FastAPI utiliza Pydantic para validar datos de entrada de manera sencilla:
from pydantic import BaseModel
class Item(BaseModel):
nombre: str
descripcion: str = None
precio: float
disponible: bool = True
@app.post("/items/")
def crear_item(item: Item):
return item
Al enviar una petición POST con un JSON, FastAPI validará automáticamente los datos según el modelo.
Buenas prácticas para APIs rápidas y eficientes con FastAPI
- Utiliza tipado de datos: Esto permite validaciones automáticas y mejor documentación.
- Organiza tu código en routers: Facilita el mantenimiento y escalabilidad.
- Aprovecha la asíncronía: Usa
async def
para operaciones que lo permitan. - Documenta tus endpoints: Aprovecha las descripciones y ejemplos en los modelos Pydantic.
- Gestiona errores adecuadamente: Utiliza
HTTPException
para respuestas personalizadas.
Ejemplo de proyecto FastAPI estructurado
Una buena estructura de proyecto puede verse así:
myapi/
│
├── main.py
├── routers/
│ ├── __init__.py
│ └── items.py
└── models/
├── __init__.py
└── item.py
En routers/items.py puedes definir rutas específicas y luego incluirlas en tu aplicación principal.
# routers/items.py
from fastapi import APIRouter
from models.item import Item
router = APIRouter()
@router.post("/items/")
def crear_item(item: Item):
return item
# main.py
from fastapi import FastAPI
from routers import items
app = FastAPI()
app.include_router(items.router)
¿Por qué elegir FastAPI para tus APIs?
Si buscas crear APIs rápidas y eficientes con Python, FastAPI es una de las mejores opciones. Su rendimiento, facilidad de desarrollo, documentación automática y validación de datos lo convierten en una herramienta moderna y poderosa para cualquier proyecto de backend.
Ahora que sabes qué es FastAPI y cómo usarlo para APIs rápidas, puedes empezar a desarrollar tus propias aplicaciones y servicios web con una base sólida y profesional.