FastAPI explicado en 5 minutos o menos

FastAPI, un marco de Python que le permite desarrollar API web, ha sido popular en los últimos años.

API (interfaz de programación de aplicaciones) es la base de la arquitectura moderna. Permiten modularizar y desacoplar aplicaciones. Esto le permite crear aplicaciones rápidamente y facilita su mantenimiento.

Por lo tanto, es una buena idea aprender FastAPI si planea usar Python para desarrollar aplicaciones web. Este artículo le enseñará todo sobre los conceptos básicos de FastAPI.

¿Qué es Fast API?

FastAPI es un marco web basado en Python. Ha llamado mucho la atención en los últimos años. Su estructura de desarrollo es similar a Flask, que fue la opción más popular para aquellos que querían aprender el desarrollo web de Python.

FastAPI es fácil de usar y su documentación es clara y fácil de seguir. FastAPI es utilizado por gigantes tecnológicos como Microsoft, Netflix y Uber.

FastAPI tiene todas las funciones que esperaría de un creador de API, pero no se limita a ellas. Puede usarlo para montar WSGI hacia atrás, que la mayoría de los usuarios no conocen.

El objetivo principal de FastAPI es crear puntos finales de API, como sugiere el nombre. Esto se puede hacer de manera tan eficiente como devolver los datos del diccionario de Python en JSON o usar la interfaz de usuario Swagger interactiva de OpenAPI.

FastAPI no se limita a las API. Se puede usar para casi todo lo que hace un marco web, desde entregar páginas web con el motor de plantillas Jinja2 hasta servir aplicaciones basadas en WebSockets.

A continuación se muestran las ventajas de FastAPI:

  • FastAPI le permite validar el tipo de datos del desarrollador, incluso cuando utiliza consultas JSON anidadas.
  • Ofrece la función de autocompletar, que le permite crear aplicaciones en menos tiempo y requiere menos esfuerzo.
  • Es compatible con el vocabulario OpenAPI y JSON Schema, lo que le permite validar y anotar documentos JSON.
  • FastAPI le permite crear rápidamente una API de GraphQL utilizando una biblioteca de Python llamada graphene–python.
  • FastAPI es compatible con OAuth 2.0 y con proveedores externos.

A continuación se muestran las desventajas de FastAPI:

  • FastAPI sigue siendo un marco nuevo, por lo que hay poca comunidad de guías. No tiene suficiente información de educación externa, como libros, cursos o tutoriales.
  • Debido a que debemos unir todos los componentes en FastAPI, el archivo principal puede volverse muy grande o abarrotado.

Características únicas de FastAPI

Estas son las características únicas que hacen de FastAPI el marco web de Python más popular hasta la fecha.

  • Alto rendimiento: FastAPI tiene más rendimiento que otros marcos de Python. El marco orientado a la velocidad de FastAPI lo convierte en la mejor opción. Todo se reduce a una velocidad más rápida y un mejor rendimiento al aprovechar las funciones de Starlette, crear API y producir códigos listos.
  • Rápido para codificar: los desarrolladores no tienen que crear nada nuevo con códigos listos para producción. Esto acelera el proceso entre un 200% y un 30% aproximadamente. FastAPI se ejecuta en Starlette y tiene muchas más funciones que se pueden usar para crear API para la validación y serialización de datos. El marco ya cuenta con todos los componentes necesarios, lo que reduce el tiempo que lleva codificar.
  • Errores mínimos: el marco tiene una función de finalización automática que inserta automáticamente la mayor parte del código en la pieza. Esto minimiza la posibilidad de errores y mejora la calidad de salida.
  • Fácil de entender: FastAPI no hace nada excepto Modern Python. Es una versión modificada de Python 3.6 y no contiene nueva sintaxis. El marco puede ser utilizado por cualquier persona que entienda bien el idioma.
  • Esfuerzo mínimo: FastAPI genera documentación OpenAPI automáticamente con un esfuerzo mínimo por parte del desarrollador. Esta información se puede encontrar en el directorio/doc de la aplicación. La documentación contiene información detallada sobre puntos finales de API, códigos de retorno, parámetros de respuesta y otros detalles.
  • Compatibilidad con el editor: todos los componentes del marco están diseñados teniendo en cuenta el autocompletado. Es simple, brinda a los desarrolladores la capacidad de producir código listo. También puede probar el código directamente desde su navegador con la documentación interactiva.
  • Estándares abiertos: el marco web Python de FastAPI es una gran ventaja. El marco es compatible con OpenAPI, anteriormente conocido como Swagger, que permite crear API.

Instalación de FastAPI

Estos son los pasos simples para instalar FastAPI en Linux o Windows.

#1. Instalación de FastAPI en Linux

Instale Python 3 en Linux usando el siguiente comando:

sudo apt install python3

Instale pip en Linux usando el siguiente comando:

sudo apt install python3-pip

A continuación, instale FastAPI en Linux.

pip install fastapi

También necesitará un servidor ASGI. Entonces, instala uvicorn usando pip.

pip install "uvicorn[standard]"

#2. Instalación de FastAPI en Windows

Instale Python 3 en Windows usando la tienda de Microsoft. Esto también instalará pip.

A continuación, instale FastAPI en Windows.

pip install fastapi

Finalmente, instale el servidor ASGI uvicorn.

pip install "uvicorn[standard]"

Usos de la nueva era de FastAPI

Estos son algunos de los usos de la nueva era de FastAPI:

Documentos automatizados

La documentación sobre los tipos de API y los puntos finales es imprescindible. Este problema se puede resolver con OpenAPI, Swagger UI y ReDoc. Estos se empaquetan automáticamente con FastAPI. Esto le permite concentrarse en su código y no configurar herramientas.

Python escrito

FastAPI usa declaraciones de tipo Python 3.6 (gracias a Pydantic). Esto significa que utiliza una característica de Python que le permite especificar el tipo y el tipo de una variable. Este marco hace un gran uso de él, brindándole un excelente soporte de editor. El autocompletado funciona asombrosamente.

Validación

Pydantic ya integra la validación en este marco. Se puede realizar la validación de tipos estándar de Python y validaciones de campos personalizados.

Seguridad y autenticación

Esta es una parte importante de cualquier API. A menudo solo repetimos el código, entonces, ¿por qué no incorporar parte de él en nuestro marco? FastAPI hace exactamente esto.

La biblioteca admite HTTP Basic, tokens OAuth2 (tokens JWT) y claves API de encabezado.

Naturaleza asincrónica

FastAPI, de forma predeterminada, admite puntos finales asincrónicos, lo que hace que su código sea más simple y eficiente. Esta es una ventaja significativa sobre Flask.

FastAPI frente a Flask: diferencias clave

Diferencias de uso

FastAPI, una plataforma de pila completa que proporciona todo lo que necesita para crear su API, está disponible. Flask, por otro lado, es un micro framework y no ofrece las mismas funciones que FastAPI. Flask puede ser útil si necesita crear un prototipo de una idea o crear una aplicación web simple rápidamente.

Flask y FastAPI son muy diferentes en la forma en que se usan. El marco Flask se puede usar para crear prototipos de nuevas ideas y aplicaciones, mientras que el marco FastAPI se puede usar para crear API. Puede construir rápidamente un servidor back-end usándolo sin ningún conocimiento de codificación.

Sitios web y aplicaciones web a pequeña escala

FastAPI es fácil de usar, liviano y se puede usar para el desarrollo web y de aplicaciones a pequeña escala. Incluye una capa relacional de objetos (ORM), que maneja los objetos de datos dentro de la aplicación, para que pueda acceder a ellos rápidamente a través de la codificación.

La capa ORM realiza un seguimiento de sus bases de datos y le permite olvidarse de actualizarlas manualmente cuando se agrega, modifica o elimina nueva información del sitio web o la aplicación.

WSGI frente a ASGI

Es posible que haya notado una diferencia básica: Flask usa WSGI para su interfaz estándar, mientras que FastAPI usa ASGI. Como se mencionó anteriormente, WSGI procesa las solicitudes de forma síncrona. Las solicitudes se procesan secuencialmente. Uno no puede comenzar hasta que se complete la última tarea.

ASGI maneja las solicitudes de forma asíncrona. Esto permite que las tareas se completen a su propio ritmo y no requiere que esperen a otros.

Comunidad

Otra diferencia es la comunidad. Flask es una comunidad que existe desde hace más tiempo que FastAPI. Esto significa una excelente documentación y ayuda externa de otros que escriben sobre Flask.

FastAPI es todavía un proyecto nuevo, por lo que la comunidad aún tiene que crecer tanto. Esto significa que aunque hay suficiente documentación, no hay mucha ayuda externa.

A continuación se muestra una tabla resumida para FastAPI vs. Flask:

FastAPIFlaskLa validación de datos está incorporada. No tiene validación de datos. El soporte de tareas asíncronas está disponible. El soporte de tareas asíncronas no está disponible. Implementa especificaciones ASGI. Admite aplicaciones WSGI. Soporte automático de documentos. Soporte manual de documentos. El mensaje de error se muestra en formato JSON.

FastAPI o Flask: ¿Cuál elegir?

FastAPI y Flask pueden configurar rápidamente servidores web Python y aplicaciones de ciencia de datos. Ambos requieren el mismo esfuerzo para la implementación, pero ¿qué marco es mejor para su próximo proyecto?

FastAPI es la mejor opción cuando la velocidad y el rendimiento son lo más importante. Este marco es mejor si está creando una CDN y espera un tráfico significativo. FastAPI le permite descargar el marco y usarlo inmediatamente. La plantilla del proyecto le ahorrará tiempo y le ayudará a ahorrar tiempo.

FastAPI es una mejor opción que Flask cuando crea API. Esto es especialmente cierto cuando se consideran los microservicios y otras consideraciones. Flask es la mejor opción si ya tiene muchas herramientas creadas en torno a este marco.

Conclusión

Entonces, eso fue todo sobre FastAPI. FastAPI ofrece velocidad y rendimiento superiores. Este marco es el mejor si está construyendo su red de entrega de contenido y espera tráfico. El marco innovador y la plantilla de proyecto de FastAPI lo ayudarán a ahorrar tiempo.

Flask podría ser mejor para crear API, particularmente microservicios. FastAPI también es mejor que Flask. Flask es una mejor opción si ya lo usa mucho.

También puede explorar algunos marcos populares de Python para crear API.