- 介绍
- 开始
- 路径参数
- 查询字符串参数
- 增删改查操作
- Pydantic模型验证
- SQL数据库
- SQL模型
- 异步IO
- PostgreSQL
- 注册用户
- OAuth 2
- 登出用户
- SQL关系
- Alembic
- Delivery Partner
- Shipment Event
- 发送邮件
- 自定义响应
- 邮件确认
- 密码重置
- SMS
- 回顾
- Celery
- 多对多
- 错误处理
- 中间件
- API文档
- API测试
- ReactJS
- Docker
- 部署
- Tips & Tricks
API允许程序通过代码直接向另一服务器请求数据,无需浏览器或用户界面。这种交互被称为 API 或 应用程序接口(Application Programming Interface)。
REST 代表 表述性状态传递(REpresentational State Transfer),是构建API的流行方法,它为API的设计和功能提供了规范与规则。
当程序需要与REST API 通信时,它会向服务器特定地址发送请求,这个地址被称为端点(Endpoint),技术上是一个URI(统一资源标识符, Uniform Resource Identifier)。
发送API请求的程序称为客户端(Client),每个请求都是特定的HTTP方法。
- GET - 用于读取数据
- POST - 用于创建新数据
- PUT - 用于更新现有数据
- DELETE - 用于删除数据
HTTP方法用于向服务器告知客户端希望在端点资源上执行的操作。
此外请求时还可以携带,请求头(Header)、请求体(Body)。
请求响应会提供响应码,与响应体。
- 2** - 成功
- 3** - 重定向
- 4** - 客户端错误
- 5** - 服务端错误
FastAPI 是一个用于构建API和Python的极速Web框架,由 Sebastian Remirez
开发,并迅速变得流行。
FastAPI 还可以使用数据验证、自动生成API文档、使用OpenAPI标准、依赖注入和异步代码来构建稳健且可扩展的API。
FastAPI 依赖以下关键库:
- Starlette - 作为底层Web服务器。
- Pydantic - 用于处理数据验证。
django | FastAPI | Flask | |
---|---|---|---|
开始 | 需初始设置与项目结构配置 | 开箱即用 | 开箱即用 |
工具 | 内置 | 第三方库 | 第三方库 |
安全 | 内置 | OAuth 2 | 手动 |
扩展 | 困难 | 易于扩展,模块化 | 易于扩展,模块化 |
性能 | 较差 | 性能极高,支持异步操作 | 较差 |
数据验证 | 使用ORM | 优异,使用标准Python类型提示 | 手动 |
OpenAPI | 不支持 | 支持 | 不支持 |
- Flask适合构建简单API(当你希望最小化结构时)。
- Django适合全栈应用,内置功能可节省开发时间,尽管学习曲线陡峭。
- FastAPI 在高性能和强大功能中达到最佳平衡。
进入 Python 官网进行下载。
默认情况下安装任何包都会全局安装并且全局可用的,我们将创建虚拟环境并进行包的安装,这样可以隔离项目。
创建虚拟环境
python -m venv ./venv
激活虚拟环境
.\venv\Scripts\activate
安装 fastapi
pip install fastapi[all]
- Python
- Ruff
- error lens
启动服务
fastapi dev
访问接口地址:http://127.0.0.1:8000/
访问API文档地址:http://127.0.0.1:8000/docs
另一种自动生成文档,通过Redoc访问,它是 Swagger UI 轻量版:http://127.0.0.1:8000/redoc
安装 scalar
,它使用OpenAPI
协议。
pip install scalar_fastapi
访问 Scalar 文档地址:http://127.0.0.1:8000/scalar/