如何使用 Swagger / OpenAPI Specification 先行的開發流程

以往,在 ASP.NET Fx / ASP.NET Core 我會先寫好 Controller(Server Code) 再搭配 NSwag、Swashbuckle.AspCore 產生 Swagger / OpenAPI Specification Doc,一旦要修改它(Spec.)就必須要重新編譯專案,只是要改文件的錯字,也沒有動到 Server Code 的邏輯,卻要重新 Build Server,幾次下來發現這樣似乎不是很聰明。也常常發生過於關注 Server Code 忽略 Specification ,導致兩邊跟不一致。

現在,我先寫 Specification,然後再透過它產生 Controller (Server Code) 讓 Specification 不再強制依賴 Server Code,解除強依賴關係,編寫規範時再也不需要重新建置專案,目前運作起來挺順暢的,接下來,我分享我是怎麼做的

...繼續閱讀 »

如何使用 AWS S3 (MinIO) 模擬器進行本地端應用程式開發

  • 89
  • 0
  • AWS
  • 2022-07-10

若我們直接存取雲端資源,將面臨到帳單的問題;若隔離雲端資源,那隔離的成本將會大大的增加,也不利於整合測試,因此有很多的開源專案模擬出了這些網路服務,只要在本地開發環境安裝模擬器,就可以盡情的享受開發的樂趣,大大的降低雲端費用,好好地善用它們吧,搜尋關鍵字 AWS S3 Simulation/Emulation、Local S3,就可以找到不少資源。

...繼續閱讀 »

如何使用 Razor Engine 腳本處理 Template

Razor Engine 是一種 .NET 腳本語言和引擎,主要是為文本範本開發,這跟我們在寫 ASP.NET MVC Razor 語法是一樣的,現在我想要透過 Razor 來定義 Template,透過 Data Binding 產生各種不同的結果。在調查有哪些 Razor 套件可以在 .NET 6 下運行且可以完整支援 Razor  語法,最後我選用 RazorTemplating,他骨子裡面則是使用 Razor Class Library

...繼續閱讀 »

ASP.NET Core 6 Middleware 的單元測試

在 ASP.NET Core 的整合測試我們可以使用 WebApplicationFactory、TestServer,這我前面幾篇已經提過了需要的可以參考之前的文章 WebApplicationFactoryTestServer。Middleware 用上述的步驟肯定是沒有問題的,但是需要的環境、步驟也比較多,可能還會因為其他 Middleware 順序所帶來的影響,今天我還要分享 ASP.NET Core內建 Mock HttpContext 做法,讓我們可以快速的針對某一個 Middleware 進行單元測試

...繼續閱讀 »

[C#] Json Compare/Diff 解決方案

現在的工作大都是使用微軟內建的 Json 序列化套件 System.Text.Json,為什麼要用可以參考 黑大這一篇,在尋求 Json Compare/Diff 解決方案時大都是看到 Newtonsoft(Json.NET) 的 JsonDiffPatch 做法,經同事分享 System.Text.Json 已經有人實作出來了,知道後立馬套用

...繼續閱讀 »

[.NET 6] 通過 FluentValidation 驗證 Dictionary<string, object> 資料內容

以往我都是透過 ValidationContext 來進行模型驗證,在 ASP.NET 的模型綁定,骨子裡面也是使用 ValidationContext,他必須要依賴 Validate Attribute,這次我的需求是要驗證  Dictionary<string, object>,ValidationContext 可能就沒有那麼適合,FluentValidation 是 .NET 生態裡的驗證框架, 這次我打算採用它來實作 Dictionary<string,object> 的驗證。

...繼續閱讀 »