FastAPI

Summary

FastAPI es un framework web de alto rendimiento para crear API de servicios basados en HTTP en Python 3.8+. [2]​ Utiliza Pydantic y sugerencias de tipo para validar, serializar y deserializar datos. FastAPI también genera automáticamente documentación OpenAPI para las API creadas con él.[3]​ Se lanzó por primera vez en 2018.

FastAPI
Información general
Tipo de programa framework
Autor Sebastián Ramírez Montaño
Lanzamiento inicial 05 de diciembre de 2018[1]
Licencia Licencia MIT
Información técnica
Programado en Python
Versiones
Última versión estable 0.115.722 de enero de 2025
Enlaces
Sitio web oficial
Repositorio de código

Componentes

editar

Pydantic

editar

Pydantic es una biblioteca de validación de datos para Python. Al escribir 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.[4]

Starlette

editar

Starlette es un conjunto de herramientas/marco ASGI liviano que admite la funcionalidad asincrónica en Python. [5]

Uvicorn

editar

Uvicorn es un servidor web/servidor de aplicaciones de bajo nivel mínimo para marcos asincrónicos, que sigue la especificación ASGI.[6]​ Técnicamente, implementa un modelo multiproceso con un proceso principal, que es responsable de administrar un grupo de procesos de trabajo y distribuirles las solicitudes HTTP entrantes. El número de procesos de trabajo está preconfigurado, pero también se puede ajustar hacia arriba o hacia abajo en tiempo de ejecución. [7]

Integración OpenAPI

editar

FastAPI genera automáticamente documentación OpenAPI para sus API. Esta documentación incluye Swagger UI y ReDoc, que proporcionan documentación API interactiva que puede utilizar para explorar y probar sus puntos finales en tiempo real. Esto es particularmente útil para desarrollar, probar y compartir API con otros desarrolladores o usuarios. [8]

Ejemplo

editar

El siguiente código muestra una aplicación web simple que muestra "¡Hola mundo⁣!", cuando se visita:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
  return "Hello World!"

Referencias

editar
  1. «fastapi repo». GitHub. 5 de diciembre de 2018. 
  2. «FastAPI». fastapi.tiangolo.com. Consultado el 10 de abril de 2024. 
  3. Lubanovic, Bill (6 de noviembre de 2019). Introducing Python: Modern Computing in Simple Packages (2nd edición). O'Reilly Media, Inc. pp. 397, 418. ISBN 9781492051367. 
  4. «Why use Pydantic - Pydantic». docs.pydantic.dev. Consultado el 21 de septiembre de 2023. 
  5. «Starlette». www.starlette.io. Consultado el 21 de septiembre de 2023. 
  6. «ASGI Documentation — ASGI 3.0 documentation». asgi.readthedocs.io. Consultado el 5 de febrero de 2025. 
  7. «Restarting 'uvicorn' Workers with the 'SIGHUP' Signal». bugfactory.io. Consultado el 17 de junio de 2024. 
  8. «Document a FastAPI App with OpenAPI». Linode Guides & Tutorials (en inglés). 6 de agosto de 2021. Consultado el 5 de febrero de 2025. 
  •   Datos: Q101119404
  •   Multimedia: FastAPI / Q101119404