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í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 pueden completar 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 las sugerencias de tipo estándar de Python, el editor ofrece autocompletado integral y verificación de errores.
Soporte asíncronoSoporte nativo de async/await, capaz de manejar eficientemente tareas intensivas en E/S.

Casos de uso de FastAPI

EscenarioDescripción
Construcción de backends de APISe utiliza para construir APIs RESTful, compatible con 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 API, facilitando su invocación desde el frontend y otros servicios.

Stack tecnológico de FastAPI

FastAPI está construido sobre dos bibliotecas principales:

ComponenteFunciónDescripción
StarletteCapa de framework webProporciona funcionalidades web básicas como enrutamiento, middleware, WebSocket, etc. 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 las 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 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ó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 desde 3.1+
Curva de aprendizajebajobajoRelativamente alta
Escala aplicablePequeña y mediana / MicroserviciosPequeña y medianaGrande / Full-stack

Enlaces relacionados

RecursoURL
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