Publicado · en mejora
Framework · Desde 2018
FastAPI es un framework web de Python de alto rendimiento para crear APIs, que usa anotaciones de tipo para validar, serializar y documentar automáticamente.
FastAPI es un framework moderno para crear APIs web con Python. Sebastián Ramírez lo publicó por primera vez en 2018 y hoy se desarrolla como proyecto de código abierto con una amplia comunidad. Se apoya en Starlette para la capa web y en Pydantic para validar datos, de modo que las anotaciones de tipo de los parámetros bastan para convertir y validar las peticiones, serializar las respuestas y generar una descripción OpenAPI de la API.
FastAPI encaja especialmente donde importan la validación de entradas y la documentación: backends REST, microservicios, servicio de modelos de machine learning y herramientas internas. Como funciona sobre ASGI, los endpoints async atienden muchas conexiones concurrentes de forma eficiente, y las funciones def normales siguen funcionando. Su sistema de inyección de dependencias permite separar sesiones de base de datos, autenticación y configuración, y sustituirlas con facilidad en las pruebas.
Para empezar, crea un entorno virtual, instala con pip install "fastapi[standard]", ejecuta fastapi dev main.py y abre /docs para llamar a tus endpoints desde la documentación interactiva. La guía oficial Tutorial - User Guide avanza paso a paso desde los parámetros de ruta hasta la seguridad, las bases de datos y las pruebas, y está pensada para leerse en orden. Si ya te manejas con las anotaciones de tipo de Python y los modelos de Pydantic, el resto de FastAPI resulta muy natural.
Los tipos de los parámetros y los modelos de Pydantic bastan para convertir y validar los datos de la petición, con errores detallados ante entradas no válidas.
A partir del código se genera un esquema OpenAPI que se sirve como documentación interactiva en /docs (Swagger UI) y /redoc.
Declara sesiones de base de datos, autenticación o parámetros comunes con Depends; FastAPI los resuelve en cada petición y las pruebas pueden reemplazarlos.
Sobre Starlette y ASGI, los endpoints async def atienden muchas conexiones concurrentes con eficiencia, y las funciones def normales conviven con ellos.
Crea y activa un entorno virtual de Python en la carpeta del proyecto. El comando de abajo es para macOS y Linux; en Windows, actívalo con .venv\Scripts\activate.
python -m venv .venv && source .venv/bin/activateInstala FastAPI con los extras standard, que incluyen dependencias de uso habitual como el servidor Uvicorn y la herramienta de línea de comandos fastapi.
pip install "fastapi[standard]"Crea main.py y arranca el servidor de desarrollo. Se recarga solo al cambiar el código, y en http://127.0.0.1:8000/docs verás la documentación interactiva de la API.
fastapi dev main.pyFastAPI() crea la aplicación y el decorador @app.get asocia una ruta y un método HTTP a una función. El diccionario que devuelve la función se convierte en una respuesta JSON. En el segundo endpoint, item_id: int convierte y valida el valor de la ruta como entero, mientras que q, al tener un valor por defecto, pasa a ser un parámetro de consulta opcional. Ejecuta fastapi dev main.py y prueba ambos endpoints desde /docs.
main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, world!"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str | None = None):
return {"item_id": item_id, "q": q}
pip install "fastapi[standard]"
fastapi dev main.pySeis capítulos que te llevan desde la instalación hasta las ideas clave de FastAPI.
Haz preguntas, comparte tu experiencia e intercambia opiniones sobre FastAPI.
Todavía no hay debates. Empieza el primero.
0 comentarios
Iniciar sesión · Inicia sesión para dejar un comentario.
Sé el primero en comentar.