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ística | Descripción |
|---|---|
| Alto rendimiento | Basado 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ápido | La 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 errores | Reduce aproximadamente un 40% de los errores humanos; el sistema de tipos captura automáticamente problemas comunes |
| Documentación automática | Genera automáticamente documentación interactiva de API (Swagger UI y ReDoc) sin necesidad de mantenimiento manual |
| Seguridad de tipos | Basado en sugerencias de tipo estándar de Python; el editor ofrece autocompletado y verificación de errores integrales |
| Soporte asíncrono | Soporte nativo para async/await, lo que permite manejar de manera eficiente tareas intensivas en E/S |
Casos de uso de FastAPI
| Escenario | Descripción |
|---|---|
| Construcción de backends de API | Se utiliza para construir APIs RESTful y admite aplicaciones web con frontend y backend separados |
| Arquitectura de microservicios | Ligero y eficiente, adecuado como framework de backend para microservicios |
| APIs de procesamiento de datos | Adecuado para servicios de procesamiento de datos que reciben y devuelven datos JSON |
| Comunicación en tiempo real | Compatible con WebSocket, adecuado para escenarios de comunicación en tiempo real |
| Servicios de aprendizaje automático | Permite 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:
| Componente | Función | Descripción |
|---|---|---|
| Starlette | Capa de framework web | Proporciona funcionalidades web básicas como enrutamiento, middleware y WebSocket; FastAPI hereda directamente de Starlette |
| Pydantic | Capa de validación de datos | Realiza validación de datos, serialización y generación de documentación basándose en sugerencias de tipo de Python |
| Uvicorn | Servidor ASGI | Servidor 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ón | FastAPI | Flask | Django |
|---|---|---|---|
| Rendimiento | Alto (asíncrono, ASGI) | Medio (síncrono, WSGI) | Medio (síncrono, WSGI) |
| Documentación automática | Integrada (Swagger UI + ReDoc) | Requiere extensiones de terceros | Requiere extensiones de terceros |
| Validación de tipos | Integrada (Pydantic) | Requiere implementación manual | Requiere implementación manual |
| Soporte asíncrono | Soporte nativo | Requiere extensiones | Soporte 3.1+ |
| Curva de aprendizaje | bajo | bajo | Relativamente alta |
| Escala adecuada | Pequeña/mediana / microservicios | Pequeña/mediana | Grande / full-stack |
Enlaces relacionados
| Recurso | Dirección |
|---|---|
| Documentación oficial de FastAPI | https://fastapi.tiangolo.com/zh/ |
| Código fuente de FastAPI | https://github.com/tiangolo/fastapi |
| Documentación de Starlette | https://www.starlette.dev/ |
| Documentación de Pydantic | https://docs.pydantic.dev/ |