跳到内容

关于 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”版本更改仅用于错误修复和非破坏性更改。

提示

“PATCH”是最后一个数字,例如在 `0.2.3` 中,PATCH 版本是 `3`。

因此,你应该能够锁定到类似的版本

fastapi>=0.45.0,<0.46.0

破坏性更改和新功能在“MINOR”版本中添加。

提示

“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