Rápido de programar: Incrementa la velocidad para desarrollar funcionalidades entre un 200% y un 300%. *
Menos bugs: Reduce aproximadamente un 40% de los errores humanos (del desarrollador). *
Intuitivo: Excelente soporte del editor. Autocompletado en todas partes. Menos tiempo haciendo debugging.
Fácil: Diseñado para ser fácil de usar y aprender. Menos tiempo leyendo docs.
Conciso: Minimiza la duplicación de código. Múltiples funcionalidades de 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 en (y totalmente compatible con) los estándares abiertos para APIs: OpenAPI (anteriormente conocido como Swagger) y JSON Schema.
* estimación basada en pruebas realizadas por un equipo de desarrollo interno, construyendo aplicaciones de producción.
"Estoy usando FastAPI muchísimo estos días. De hecho, planeo usarlo para todos los servicios de ML de mi equipo en Microsoft. Algunos se están integrando en el producto central de Windows y en algunos productos de Office."
"Adoptamos la librería FastAPI para lanzar un servidor REST que puede ser consultado para obtener predicciones." [para Ludwig]
— Piero Molino, Yaroslav Dudin, Sai Sumanth Miryala, Uber(ref)
"Netflix se complace en anunciar el lanzamiento open-source de nuestro framework de orquestación de gestión de crisis: Dispatch!" [construido con FastAPI]
— Kevin Glisson, Marc Vilanova, Forest Monsen, Netflix(ref)
"Si alguien está buscando construir una API de Python para producción, recomendaría encarecidamente FastAPI. Está hermosamente diseñado, fácil de usar y altamente escalable — se ha convertido en un componente clave en nuestra estrategia de desarrollo API-first."
"[...] Estoy usando FastAPI muchísimo estos días. [...] De hecho, planeo usarlo para todos los servicios de ML de mi equipo en Microsoft. Algunos se están integrando en el producto central de Windows y en algunos productos de Office."
"Adoptamos la librería FastAPI para lanzar un servidor REST que puede ser consultado para obtener predicciones. [para Ludwig]"
Piero Molino, Yaroslav Dudin, y Sai Sumanth Miryala - Uber(ref)
"Netflix se complace en anunciar el lanzamiento open-source de nuestro framework de orquestación de gestión de crisis: Dispatch! [construido con FastAPI]"
Kevin Glisson, Marc Vilanova, Forest Monsen - Netflix(ref)
"Si alguien está buscando construir una API de Python para producción, recomendaría encarecidamente FastAPI. Está hermosamente diseñado, fácil de usar y altamente escalable, se ha convertido en un componente clave en nuestra estrategia de desarrollo API first y está impulsando muchas automatizaciones y servicios tales como nuestro Virtual TAC Engineer."
fast →fastapi dev ╭────────── 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 completar 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 pantalla:
El CLI detectará automáticamente tu aplicación FastAPI y la desplegará en la nube. Si no has iniciado sesión, tu navegador se abrirá para completar el proceso de autenticación.
¡Eso es todo! Ahora puedes acceder a tu app en esa URL. ✨
Los benchmarks independientes de TechEmpower muestran que las aplicaciones FastAPI ejecutándose bajo Uvicorn son uno de los frameworks de Python más rápidos disponibles, solo por debajo de Starlette y Uvicorn mismos (usados internamente por FastAPI). (*)
Para entender más sobre esto, consulta la sección Benchmarks.
jinja2 - Necesario si quieres usar la configuración de template por defecto.
python-multipart - Necesario si quieres soportar el "parsing" de formularios, con request.form().
Usado por FastAPI:
uvicorn - para el servidor que carga y sirve tu aplicación. Esto incluye uvicorn[standard], que incluye algunas dependencias (e.g. uvloop) necesarias para servir con alto rendimiento.
fastapi-cli[standard] - to provide the fastapi command.
Esto incluye fastapi-cloud-cli, que te permite desplegar tu aplicación FastAPI a FastAPI Cloud.
Si quieres instalar FastAPI con las dependencias standard pero sin el fastapi-cloud-cli, puedes instalar con pip install "fastapi[standard-no-fastapi-cloud-cli]".