关于 FastAPI 版本¶
FastAPI 已被广泛应用于生产环境的应用程序和系统中,并且测试覆盖率保持在 100%。但其开发仍在快速推进中。
新功能会频繁添加,错误会定期修复,代码也在持续优化。
这就是为什么当前版本仍为 0.x.x,这表示每个版本都可能包含破坏性变更。这遵循了 语义化版本 的约定。
你现在就可以使用 FastAPI 创建生产环境应用(可能已经使用了一段时间),只需确保使用的版本与你的其他代码兼容。
固定你的 fastapi 版本¶
首先应该将 FastAPI 的版本固定为已知与你的应用程序完全兼容的最新版本。
例如,假设你在应用中使用的是 0.112.0 版本。
如果使用 requirements.txt 文件,可以通过以下方式指定版本:
fastapi[standard]==0.112.0
这表示你将严格使用 0.112.0 版本。
或者也可以这样固定:
fastapi[standard]>=0.112.0,<0.113.0
这表示你将使用 0.112.0 或更高版本,但低于 0.113.0,例如 0.112.2 版本仍会被接受。
如果使用其他工具管理安装,如 uv、Poetry、Pipenv 等,它们都有定义包特定版本的方法。
可用版本¶
你可以在 发布说明 中查看可用版本(例如检查当前最新版本)。
关于版本¶
遵循语义化版本约定,任何低于 1.0.0 的版本都可能包含破坏性变更。
FastAPI 还遵循约定:"PATCH" 版本变更仅用于错误修复和非破坏性变更。
Tip
"PATCH" 是最后一个数字,例如在 0.2.3 中,PATCH 版本是 3。
因此,你可以固定一个版本范围如:
fastapi>=0.45.0,<0.46.0
破坏性变更和新功能会在 "MINOR" 版本中添加。
Tip
"MINOR" 是中间的数字,例如在 0.2.3 中,MINOR 版本是 2。
升级 FastAPI 版本¶
你应该为应用添加测试。
使用 FastAPI 非常容易(得益于 Starlette),查看文档:测试
有了测试后,你可以将 FastAPI 升级到更新的版本,并通过运行测试确保所有代码正常工作。
如果一切正常,或在做出必要修改后所有测试通过,就可以将 fastapi 固定到这个新版本。
关于 Starlette¶
你不应该固定 starlette 的版本。
不同版本的 FastAPI 会使用特定的较新 Starlette 版本。
因此,只需让 FastAPI 使用正确的 Starlette 版本即可。
关于 Pydantic¶
Pydantic 在其测试中包含了 FastAPI 的测试,因此 Pydantic 的新版本(高于 1.0.0)始终与 FastAPI 兼容。
你可以将 Pydantic 固定为任何高于 1.0.0 且适合你的版本。
例如:
pydantic>=2.7.0,<3.0.0