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