Tutorial de FastAPI

FastAPI es un framework web de Python moderno y rápido (de alto rendimiento) para construir APIs, diseñado específicamente para crear APIs RESTful.

FastAPI utiliza Python 3.8+ y se basa en las sugerencias de tipo estándar de Python. Está construido con Starlette y Pydantic, y puede generar automáticamente documentación de API y realizar validación de datos.


¿Quién debería leer este tutorial?

Este tutorial está dirigido a desarrolladores con conocimientos básicos de Python. Si ya comprendes la sintaxis básica de Python y las anotaciones de tipo, podrás empezar a usar FastAPI rápidamente.


Lo que necesitas saber antes de estudiar este tutorial

Antes de estudiar este tutorial, necesitas conocer algunos conocimientos básicos de la Web yTutorial básico de Python 3.x. Si no estás familiarizado con los métodos de solicitud HTTP (GET, POST, etc.), te recomendamos leer primeroel Tutorial de HTTP。


Características de FastAPI

FastAPI se destaca entre los frameworks web de Python principalmente gracias a las siguientes características:

CaracterísticaDescripción
Alto rendimientoBasado en Starlette y Pydantic, su rendimiento es comparable al de NodeJS y Go, siendo uno de los frameworks de Python más rápidos
Desarrollo rápidoLa velocidad de desarrollo aumenta aproximadamente un 200%-300%; las declaraciones de tipo estándar permiten la validación de datos y la generación de documentación
Reducción de erroresReduce aproximadamente un 40% de los errores humanos; el sistema de tipos captura automáticamente problemas comunes
Documentación automáticaGenera automáticamente documentación interactiva de API (Swagger UI y ReDoc) sin necesidad de mantenimiento manual
Seguridad de tiposBasado en sugerencias de tipo estándar de Python; el editor ofrece autocompletado y verificación de errores integrales
Soporte asíncronoSoporte nativo para async/await, lo que permite manejar de manera eficiente tareas intensivas en E/S

Casos de uso de FastAPI

EscenarioDescripción
Construcción de backends de APISe utiliza para construir APIs RESTful y admite aplicaciones web con frontend y backend separados
Arquitectura de microserviciosLigero y eficiente, adecuado como framework de backend para microservicios
APIs de procesamiento de datosAdecuado para servicios de procesamiento de datos que reciben y devuelven datos JSON
Comunicación en tiempo realCompatible con WebSocket, adecuado para escenarios de comunicación en tiempo real
Servicios de aprendizaje automáticoPermite encapsular modelos entrenados como APIs, facilitando su uso por parte del frontend y otros servicios

Stack tecnológico de FastAPI

FastAPI se construye sobre dos bibliotecas principales:

ComponenteFunciónDescripción
StarletteCapa de framework webProporciona funcionalidades web básicas como enrutamiento, middleware y WebSocket; FastAPI hereda directamente de Starlette
PydanticCapa de validación de datosRealiza validación de datos, serialización y generación de documentación basándose en sugerencias de tipo de Python
UvicornServidor ASGIServidor ASGI de alto rendimiento basado en uvloop y httptools, utilizado para ejecutar aplicaciones FastAPI
FastAPI es una subclase de Starlette, por lo que puedes usar todas las funcionalidades de Starlette. Además, FastAPI es totalmente compatible con Pydantic, incluidas bibliotecas externas como los ORM basados en Pydantic (por ejemplo, SQLModel).

¿Por qué elegir FastAPI?

Dimensión de comparaciónFastAPIFlaskDjango
RendimientoAlto (asíncrono, ASGI)Medio (síncrono, WSGI)Medio (síncrono, WSGI)
Documentación automáticaIntegrada (Swagger UI + ReDoc)Requiere extensiones de tercerosRequiere extensiones de terceros
Validación de tiposIntegrada (Pydantic)Requiere implementación manualRequiere implementación manual
Soporte asíncronoSoporte nativoRequiere extensionesSoporte 3.1+
Curva de aprendizajebajobajoRelativamente alta
Escala adecuadaPequeña/mediana / microserviciosPequeña/medianaGrande / full-stack

Enlaces relacionados

RecursoDirección
Documentación oficial de FastAPIhttps://fastapi.tiangolo.com/zh/
Código fuente de FastAPIhttps://github.com/tiangolo/fastapi
Documentación de Starlettehttps://www.starlette.dev/
Documentación de Pydantichttps://docs.pydantic.dev/
Otras extensiones