Tutorial de FastAPI
FastAPI es un framework web de Python moderno, rápido (de alto rendimiento), diseñado específicamente para construir 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 es adecuado para desarrolladores con conocimientos básicos de Python. Si ya conoces la sintaxis básica de Python y las anotaciones de tipo, podrás comenzar a usar FastAPI rápidamente.
Lo que necesitas saber antes de estudiar este tutorial
Antes de estudiar este tutorial, necesitas tener algunos conocimientos básicos de Web yTutorial básico de Python 3.x. Si no estás muy familiarizado con los métodos de solicitud HTTP (GET, POST, etc.), se recomienda leer primeroTutorial 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 pueden completar 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 las sugerencias de tipo estándar de Python, el editor ofrece autocompletado integral y verificación de errores. |
| Soporte asíncrono | Soporte nativo de async/await, capaz de manejar eficientemente 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, compatible con 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 API, facilitando su invocación desde el frontend y otros servicios. |
Stack tecnológico de FastAPI
FastAPI está construido sobre dos bibliotecas principales:
| Componente | Función | Descripción |
|---|---|---|
| Starlette | Capa de framework web | Proporciona funcionalidades web básicas como enrutamiento, middleware, WebSocket, etc. 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 las 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 utilizar todas las funcionalidades de Starlette. Además, FastAPI es totalmente compatible con Pydantic, incluidas bibliotecas externas como ORM basados en Pydantic (por ejemplo, SQLModel).
¿Por qué elegir FastAPI?
| Criterio 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 desde 3.1+ |
| Curva de aprendizaje | bajo | bajo | Relativamente alta |
| Escala aplicable | Pequeña y mediana / Microservicios | Pequeña y mediana | Grande / Full-stack |
Enlaces relacionados
| Recurso | URL |
|---|---|
| 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/ |