FastAPI es un framework web moderno, rápido (de alto rendimiento), para construir APIs con Python basado en las anotaciones de tipos estándar de Python.
Rápido de programar: Aumenta la velocidad para desarrollar funcionalidades en aproximadamente un 200% a 300%. *
Menos bugs: Reduce en aproximadamente un 40% los errores inducidos por humanos (desarrolladores). *
Intuitivo: Gran soporte para editores. Autocompletado en todas partes. Menos tiempo depurando.
Fácil: Diseñado para ser fácil de usar y aprender. Menos tiempo leyendo documentación.
Corto: Minimiza la duplicación de código. Múltiples funcionalidades desde cada declaración de parámetro. Menos bugs.
Robusto: Obtén código listo para producción. Con documentación interactiva automática.
Basado en estándares: Basado (y completamente compatible) con los estándares abiertos para APIs: OpenAPI (anteriormente conocido como Swagger) y JSON Schema.
* estimación basada en pruebas con un equipo de desarrollo interno, construyendo aplicaciones de producción.
"[...] Estoy usando FastAPI un montón estos días. [...] De hecho, estoy planeando usarlo para todos los servicios de ML de mi equipo en Microsoft. Algunos de ellos se están integrando en el núcleo del producto Windows y algunos productos de Office."
"Adoptamos el paquete FastAPI para crear un servidor REST que pueda ser consultado para obtener predicciones. [para Ludwig]"
Piero Molino, Yaroslav Dudin, y Sai Sumanth Miryala - Uber(ref)
"Netflix se complace en anunciar el lanzamiento de código abierto de nuestro framework de orquestación de gestión de crisis: Dispatch! [construido con FastAPI]"
Kevin Glisson, Marc Vilanova, Forest Monsen - Netflix(ref)
"Estoy súper emocionado con FastAPI. ¡Es tan divertido!"
"Honestamente, lo que has construido parece súper sólido y pulido. En muchos aspectos, es lo que quería que Hug fuera; es realmente inspirador ver a alguien construir eso."
"Si estás buscando aprender un framework moderno para construir APIs REST, échale un vistazo a FastAPI [...] Es rápido, fácil de usar y fácil de aprender [...]"
"Nos hemos cambiado a FastAPI para nuestras APIs [...] Creo que te gustará [...]"
"Si alguien está buscando construir una API de Python para producción, altamente recomendaría FastAPI. Está hermosamente diseñado, es simple de usar y altamente escalable, se ha convertido en un componente clave en nuestra estrategia de desarrollo API primero y está impulsando muchas automatizaciones y servicios como nuestro Ingeniero Virtual TAC."
fast →fastapi dev main.py ╭────────── FastAPI CLI - Development mode ───────────╮ │ │ │ Serving at: http://127.0.0.1:8000 │ │ │ │ API docs: http://127.0.0.1:8000/docs │ │ │ │ Running in development mode, for production use: │ │ │ │ fastapi run │ │ │ ╰─────────────────────────────────────────────────────╯
INFO: Will watch for changes in these directories: ['/home/user/code/awesomeapp'] INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: Started reloader process [2248755] using WatchFiles INFO: Started server process [2248757] INFO: Waiting for application startup. INFO: Application startup complete.
La documentación interactiva de la API se actualizará automáticamente, incluyendo el nuevo body:
Haz clic en el botón "Try it out", te permite llenar los parámetros e interactuar directamente con la API:
Luego haz clic en el botón "Execute", la interfaz de usuario se comunicará con tu API, enviará los parámetros, obtendrá los resultados y los mostrará en la pantalla:
Actualización de la Documentación Alternativa de la API¶
Benchmarks independientes de TechEmpower muestran aplicaciones FastAPI ejecutándose bajo Uvicorn como uno de los frameworks Python más rápidos disponibles, solo por debajo de Starlette y Uvicorn (usados internamente por FastAPI). (*)
Para entender más sobre esto, ve la sección Benchmarks.
jinja2 - Requerido si deseas usar la configuración de plantilla predeterminada.
python-multipart - Requerido si deseas soportar "parsing" de forms, con request.form().
Usadas por FastAPI / Starlette:
uvicorn - para el servidor que carga y sirve tu aplicación. Esto incluye uvicorn[standard], que incluye algunas dependencias (por ejemplo, uvloop) necesarias para servir con alto rendimiento.
fastapi-cli - para proporcionar el comando fastapi.