這是一個簡單的、預先配置的 ASP.NET Core 項目,旨在讓您在基於三層架構建立 Restful API 方面取得領先。
為了展示其一些功能,該專案附帶了一個名為 Plantagoo 的專案管理應用程式的簡約且虛構的實作。
就我個人而言,在過去的幾個月裡,我一直在反覆從頭開始建立 ASP.NET Core API 專案。儘管眾所周知,技術正在迅速變化和改進,但我覺得有必要創建和發布這個項目,以便將來能夠共享、參考和建構它。
三層架構,每層使用類別庫
基於 DI 的非同步服務,傳回通用回應對象
基於JWT的認證授權
基於 PBKDF2 的哈希
基於中介軟體的全域錯誤處理
Restful API 端點,傳回 DTO 和 HTTP 狀態碼
實作 API 端點的篩選、分頁和排序,傳回物件列表
API端點版本控制的實現
透過 POCO 實體進行基於 Entity Framework Core 的資料存取
基於AutoMapper的物件到物件映射和資料庫查詢最佳化
透過基於環境的「appsettings.json」檔案、機密和/或環境變量,對資料庫連接字串和 JWT 參數進行以安全為中心的可配置性
基於 xUnit 的整合測試,包括專用資料庫的設定、播種和拆卸
若要按原樣啟動並運行該項目,請隨意執行以下步驟:
.NET Core 3.1+ SDK
IDE(最好是 Visual Studio 或 Visual Studio Code)
MySQL 伺服器 8.0.20+
克隆這個儲存庫
在根目錄中,透過執行以下命令來恢復所需的套件:
dotnet restore
開啟 Plantagoo.API 專案中的appsettings.{environment}.json文件,根據您的需求自訂以下連接字串(有關憑證,請參閱步驟 7):
server=localhost;Port=3306;database=apiSkeletonDb
出於開發目的,透過執行啟用秘密儲存(如果您習慣使用環境變量,請快轉到步驟 7):
dotnet user-secrets init
如果您使用的是 Windows,請前往並開啟%APPDATA%MicrosoftUserSecrets<user_secrets_id>secrets.json檔案。
如果您使用的是 Linux/macOS,請前往並開啟~/.microsoft/usersecrets/<user_secrets_id>/secrets.json檔案。
在此 Secrets.json 檔案中,新增以下行來設定 JWT 參數並透過新增使用者名稱和密碼來擴展資料庫連接字串:
"TokenSettings:Secret": "…", "TokenSettings:AccessExpirationInMinutes": "…", "DB:Username": "…", "DB:Password": "…"
對於建立資料庫的程式碼優先方法,請執行下列命令(確保目前目錄是Plantagoo.Data ):
dotnet ef migrations add InitialCreate
其次是:
dotnet ef database update
接下來,透過執行以下命令建置解決方案:
dotnet build
完成後,透過執行以下命令啟動應用程式:
dotnet run
在瀏覽器中啟動 https://localhost:5001/swagger/index.html 以查看 API 的 Swagger 文檔
.NET核心3.1
ASP.NET 核心 3.1
實體框架核心 3.1
自動映射器
虛張聲勢
x單位