FastAPI 官方首页一直强调两件底层支柱:
Starlette:负责 Web / ASGI 那一层Pydantic:负责数据校验、序列化、JSON Schema 那一层
可以把它理解成:
软件城市政务大厅
│
├── Uvicorn:门口接待系统
│ └── 负责真正启动 ASGI 服务
│
├── FastAPI:总服务台
│ ├── 路由分发
│ ├── 参数解析
│ ├── 依赖注入
│ ├── OpenAPI 文档
│ └── 响应模型过滤
│
├── Starlette:大厅基础设施
│ ├── ASGI
│ ├── Middleware
│ ├── Background Tasks
│ ├── TestClient
│ └── WebSocket / CORS / StaticFiles
│
└── Pydantic:表单审核系统
├── 类型校验
├── 字段约束
├── 序列化
├── Validators
└── JSON Schema一句话记忆:
FastAPI决定窗口怎么接待人Starlette决定这栋大厅怎么运行Pydantic决定表单怎么验Uvicorn决定大厅怎么开门营业