微軟一直以來都有提供 Model Validation 讓我們更容易的進行前置條件檢查,這次我想要在 ASP.NET Core Web API 回傳一致性的錯誤結構,捨棄預設錯誤的結構,接下來我將演練 Model Validation 以及 FluentValidation 的使用方式。
ASP.NET Core 7 幾個 Model Validation 的技巧
- 2471
- 0
- Validation
- 2023-09-01
微軟一直以來都有提供 Model Validation 讓我們更容易的進行前置條件檢查,這次我想要在 ASP.NET Core Web API 回傳一致性的錯誤結構,捨棄預設錯誤的結構,接下來我將演練 Model Validation 以及 FluentValidation 的使用方式。
以往我都是透過 ValidationContext 來進行模型驗證,在 ASP.NET 的模型綁定,骨子裡面也是使用 ValidationContext,他必須要依賴 Validate Attribute,這次我的需求是要驗證 Dictionary<string, object>,ValidationContext 可能就沒有那麼適合,FluentValidation 是 .NET 生態裡的驗證框架, 這次我打算採用它來實作 Dictionary<string,object> 的驗證。
ValidationAttribute 可以讓我們自訂驗證邏輯,搭配 ValidationContext 就可以驗證整個 Model 的狀態,詳情請參考 [Validation] 自訂模型驗證 | 余小章 @ 大內殿堂 - 點部落 (dotblogs.com.tw)
利用 ValidationAttribute 把資料驗證的邏輯抽離應用程式,以提升程式的維護,這裡分享一下我常用的做法