跳到内容

关于 FastAPI 版本

FastAPI 已经被许多应用程序和系统用于生产环境。其测试覆盖率保持在 100%。但它的开发仍在快速进行中。

新功能会频繁添加,Bug 会定期修复,代码也在持续改进。

因此,当前版本仍然是 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)”版本的变更都是用于修复 Bug 和非破坏性变更的。

提示

“修订号”是最后一个数字,例如,在 0.2.3 中,修订版本是 3

因此,你应该可以固定到这样的版本:

fastapi>=0.45.0,<0.46.0

破坏性变更和新功能会在“次版本号(MINOR)”版本中添加。

提示

“次版本号”是中间的数字,例如,在 0.2.3 中,次版本号是 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