工程開發
fastapi-clean-architecture avatar

fastapi-clean-architecture

使用 Clean Architecture 原則建構模組化 FastAPI 應用程式,包含領域驅動設計、依賴注入、Repository 模式及測試策略,適用於可擴充的 Python 後端服務。

簡介

本技能為開發可維護、可測試且具備擴充性的 Python 後端服務提供了結構化的框架,並深度整合 FastAPI。它透過「三層架構」落實關注點分離:API 層負責 HTTP 路由與 DTO 驗證;領域層 (Domain Layer) 處理純粹的業務邏輯與實體定義;基礎設施層 (Infrastructure Layer) 則負責外部整合與資料持久化。透過依賴注入 (DI) 與 Repository 模式,此技能確保業務邏輯能與特定的框架、資料庫(如 PostgreSQL、Redis)或 API 服務解耦。

  • 落實清晰的層級分離:API 層(控制器/結構)、領域層(實體/服務)、基礎設施層(Repository/適配器)。

  • 強制單向依賴流:API 依賴領域層,基礎設施實作領域介面,領域層保持與框架無關。

  • 提供領域驅動設計 (DDD) 模板,包含值物件、抽象 Repository 合約及自訂領域例外處理。

  • 整合強大的測試策略,涵蓋非同步 Python 環境下的整合測試、單元測試與 Mock 測試。

  • 促進使用 Pydantic 進行請求/回應 DTO 管理,以及 SQLAlchemy 進行資料庫 ORM 操作。

  • 最適用於啟動大型企業級 FastAPI 專案,或將龐大的舊有程式碼重構為模組化的維護結構。

  • 要求具備 Python 型別提示 (Type Hinting)、非同步程式設計 (async/await) 及依賴注入原則的知識。

  • 輸入通常包括專案需求、資料模型與業務規則;輸出則為組織嚴謹、符合生產環境規格的目錄結構與模組化程式碼。

  • 非常適合開發需要高度測試能力,並希望在不修改核心業務邏輯的情況下更換基礎架構組件的系統。

  • 限制:必須嚴格遵守領域獨立性,領域層不得從 API 或基礎設施層進行匯入,以維護架構的完整性。

倉庫統計

Star 數
1
Fork 數
0
Open Issue 數
0
主要語言
Python
預設分支
main
同步狀態
閒置
最近同步時間
2026年5月3日 下午05:44
在 GitHub 查看