FastAPI es un marco web moderno para crear API RESTful en Python . Es relativamente rápido y se utiliza para crear API con Python 3.8+ basadas en sugerencias estándar de tipo Python. Se lanzó por primera vez en 2018 y desde entonces ha ganado rápidamente popularidad entre los desarrolladores debido a su facilidad de uso, velocidad y solidez. [3]
FastAPI se basa en Pydantic y utiliza sugerencias de tipo para validar , serializar y deserializar datos. También genera automáticamente documentación de OpenAPI para las API creadas con él. [4]
FastAPI es totalmente compatible con la programación asincrónica y puede ejecutarse en servidores Gunicorn y ASGI como Uvicorn e Hypercorn, [5] lo que lo convierte en una buena opción para entornos de producción. Para mejorar la facilidad de uso para los desarrolladores, se consideró la compatibilidad con el editor desde los primeros días del proyecto. [6]
Pydantic es una biblioteca de validación de datos para Python. Dado que la lógica de validación de tipos está escrita en el lenguaje de programación Rust , Pydantic se encuentra entre las bibliotecas de validación de datos más rápidas para Python. Mientras escribe código en un IDE , Pydantic proporciona sugerencias de tipo para la validación y serialización del esquema a través de anotaciones de tipo. [7]
Starlette es un marco/kit de herramientas ASGI liviano que admite la funcionalidad asíncrona en Python. [8] Starlette ha mostrado un gran rendimiento en pruebas comparativas independientes, que es heredado por FastAPI. [9]
Uvicorn es un servidor web de aplicaciones/servidor mínimo de bajo nivel para marcos asíncronos, siguiendo la especificación ASGI.
FastAPI fue el tercer marco web más apreciado en la encuesta para desarrolladores de Stack Overflow 2021. [10]
Grandes empresas como Uber y Netflix lo utilizan para desarrollar algunas de sus aplicaciones. [11] [12]
El siguiente código muestra una aplicación web sencilla que muestra "¡ Hola mundo !" cuando se visita:
desde fastapi importar FastAPIaplicación = FastAPI ()@aplicación . get ( "/" ) def read_root (): devuelve "¡Hola mundo!"