FastAPI es un “nuevo” framework de Python, para desarrollo de API web, con alta performance, fácil de aprender, rápido de implementar y listo para producción.

Luego de probarlo quede fascinado y con ganas de comenzar a utilizarlo en proyectos.

Historia

FastAPI se inició en diciembre de 2018 y en 2 años escalo hasta ser el tercer framework más popular de Python, luego de Django y Flask.

fuente: https://www.jetbrains.com/lp/python-developers-survey-2020/

Es una escalada impresionante. Tener en cuenta que Django y Flask tiene 15 y 10 años respectivamente.

Es un proyecto iniciado por Tiangolo (Sebastián Ramírez), Colombiano viviendo el Alemania. Desarrollador de Software muy productivo.

Resulta inspirador.

Ejemplo

Te doy un ejemplo simple para que veas su magia

from typing import Optional

from fastapi import FastAPI
from pydantic import BaseModel


class Item(BaseModel):
    name: str
    description: Optional[str] = None
    price: float
    tax: Optional[float] = None


app = FastAPI()


@app.put("/items/{item_id}")
async def create_item(item_id: int, item: Item, q: Optional[str] = None):
    result = {"item_id": item_id, **item.dict()}
    if q:
        result.update({"q": q})
    return result

Este es un endpoint para una consulta PUT, donde recibe un parametro en path, otro por query y otro por body.

Lo que provee FastAPI es:

  • Simplicidad
  • Validación de parámetros y chequeo de tipos
  • Conversion de datos
  • Tiene la inteligencia para identificar y determinar por donde se enviaron los parámetros
  • Respuestas detalladas automáticas en caso de error en la solicitud
  • Un endpoint /docs, con toda una documentación detallada autogenerada e interactiva de los endpoints, gracias a integración con Swagger
  • Muy alta performance, a la par de NodeJS y Go
  • Soporte de los editores de texto

Ejemplo de documentación interactiva autogenerada

O sea, te arman una estructura donde te hacen todo el trabajo sucio, las partes más tediosas, y de esta forma te concentras en la parte funcional.

Datos

  • ¡La documentación es excelente! Intuitiva y detallada
  • Una comunidad creciente, con más de 200 colaboradores
  • Utilizada por Uber, Netflix y Microsoft. ref1, ref2, ref3.

Enlaces

Conclusión

Una herramienta interesante, digna de aprender para añadirla a nuestro repertorio y tenerla bajo el radar.

Comentame qué te parece!