關於 FastAPI 版本¶
FastAPI 已經在許多應用與系統的生產環境中使用,且測試涵蓋率維持在 100%。同時開發仍在快速推進。
經常加入新功能、定期修復錯誤,程式碼也在持續改進。
這就是為什麼目前版本仍為 0.x.x,這表示每個版本都可能包含破壞性變更。這遵循 語意化版本(Semantic Versioning) 的慣例。
你現在就可以用 FastAPI 建置生產環境的應用(而且你可能已經這麼做一段時間了),只要確保你使用的版本能與其餘程式碼正確相容。
鎖定你的 fastapi 版本¶
首先,你應該將你使用的 FastAPI 版本「鎖定(pin)」到你知道對你的應用可正常運作的最新特定版本。
例如,假設你的應用使用 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