FastAPI es un “nuevo” framework de Python, para desarrollo de APIs 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
  • Validacion de parámetros y chequeo de tipos
  • Conversion de datos
  • Tiene la inteligencia para identificar y determinar por donde se enviaron los parametros
  • Respuestas detalladas automáticas en caso de error en la solicitud
  • Un endpoint /docs, con toda una documentacion 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 documentacion 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 documentacion 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!