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