关于 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