ASP.NET Web API 無法輸出 Entity Framework 物件的解法
開發 ASP.NET Web API 時,如果專案使用 Entity Framework 技術的話,當 Entity 與 Entity 之間包含導覽屬性 (Navigation Property) 的話,在預設的情況下,ASP.NET Web API 在輸出 JSON 格式時,會引發一個...
View Article如何在 ASP.NET Web API 套用 ELMAH 錯誤紀錄模組
每個網站必備的 ELMAH (Error Logging Modules and Handlers) 模組,在使用 ASP.NET Web API時卻無法自動套用,也就是說 ASP.NET Web API執行的過程中發生任何例外,預設都不會自動寫入 ELMAH指定的儲存區。那是因為 ASP.NET Web API的主要用途是用來回應呼叫 RESTful API 的用戶端要求,為了不讓用戶端得到不符合...
View Article如何在 ASP.NET MVC 4 專案加上 Web API 與 API 說明頁面
ASP.NET Web API功能強大,可很便利的設計出以 REST為風格的 API 介面 (RESTful APIs),且早與 ASP.NET MVC 專案整合在一起。但是當 API 越寫越多時,如果沒有一個好個 API 文件或程式碼範例輔助,也很有可能會演變成一場災難。這篇文章,主要是撰寫如何在一個完全沒有 ASP.NET Web API 的專案中,加入新的 ASP.NET Web API...
View Article如何在現有 ASP.NET MVC 5 專案上加入 ASP.NET Web API
如果你已經建立好一個 ASP.NET MVC 5,而又突然想要加入 ASP.NET Web API 2 的相關套件與設定檔,你可以參考本篇文章解說的 SOP 進行設定。所有步驟也都以 Git 進行版控,各位可以到 https://github.com/doggy8088/MVC5_Add_WebAPI查閱每個步驟的變更紀錄。... 繼續閱讀 ...
View Article如何在 ASP.NET Web API 2 專案中啟用表單驗證 (Forms Authentication)
使用 Visual Studio 2015 開發 ASP.NET Web API 2 專案時,有好幾種專案範本可以選擇,你可以從「空白」專案範本開始,也可以從「MVC」專案範本開始 (記得勾選 Web API 核心參考),也可以直接從「Web...
View Article如何自訂 ASP.NET Core Web API 的錯誤回應訊息
我看過有無數企業在設計 Web API 的時候,會將所有可能的回應訊息,無論成功或失敗,全部一律回應 HTTP 狀態碼 200 (OK)。但這樣的設計完全違反 RESTful 架構精神,我們應該盡可能透過狀態碼表明回應的狀態才對。明明是一份不 OK 的訊息,硬要回應 OK 真的很怪。我就來透過這篇文章,告訴你為什麼大家會這樣設計,以及怎樣設計才正確。... 繼續閱讀 ...
View Article如何使用 .NET CLI 快速產生 ASP․NET Core 的 Controllers 與 Views 程式碼
我們在 Visual Studio 2019 開發 ASP․NET Core 的時候,都可以透過 [加入] / [控制器] 的方式,很便利的快速產生 Controllers 與 Views 程式碼,如果已經有現成的 Models 模型類別存在,還能快速的完成 CRUD 等實作。可惜在 Visual Studio Code 裡面,似乎就沒有相對應的工具可用,這對使用 macOS 或 Linux...
View Article使用 .NET CLI 快速建立 Web API 用戶端函式庫的方法
在 Visual Studio 2019 裡面使用含有 OpenAPI 規格的 Web API 已經是十分便利,只要規格寫的好,Web API 用戶端函式庫只要一秒鐘就可以產生。但其實這些好用的功能背後都是靠 MSBuild 與 NSwag 做到,今天花了一整天把所有技術細節釐清,釐清之後對這整套作法是如此的豁然開朗,感覺很棒。這篇文章我就來寫寫今日的研究心得!... 繼續閱讀 ...
View Article如何正確建置 ASP.NET MVC 5 原始碼並對原始碼進行分析研究
上次寫這個主題已經是 2009/2/8 的事情了,原來我已經用 ASP.NET MVC 寫了超過 12 年。時至今日 ASP.NET MVC 5 已經非常穩定,而且微軟還有團隊在維護這套框架,但不會增加新功能,只會修正社群回報的 Bug 而已。由於最近正在進行 ASP.NET MVC 5 開發實戰課程,我也非常建議學員可以下載原始碼回來研究,所以這篇文章我將說明下載原始碼編譯的幾個重要步驟。......
View Article如何在 ASP.NET Web API 套用 ELMAH 錯誤紀錄模組 (2021 年版)
之前寫過好幾篇跟 ELMAH 相關的文章,其中 如何在 ASP.NET MVC 4 套用 ELMAH 錯誤紀錄模組這篇還沒有過時,但剛在看 如何在 ASP.NET Web API 套用 ELMAH 錯誤紀錄模組這篇文章時發現,現在有更簡單的設定方法,所以特別撰文分享心得。... 繼續閱讀 ...
View Article.NET 6.0 如何使用 Serilog 對應用程式事件進行結構化紀錄
Serilog是我在撰寫 .NET 應用程式時唯一推薦的 Logging 工具,基本上 Serilog的 NuGet 套件支援 .NET Framework 4.5+ 與 .NET Core 1.0+ 版本,相容性非常高。這篇文章我打算說明在 .NET 6 完整設定 Serilog 的過程,以及在不同情境下的注意事項。... 繼續閱讀 ...
View ArticleASP.NET Core Web API 遭遇 No route matches the supplied values 的問題
在開發 ASP․NET Core Web API 的 [HttpPost]動作方法用來建立資料時,我們可以使用 CreatedAtAction或 CreatedAtRoute來回應訊息,但是可能會遇到 No route matches the supplied values的問題,這篇文章我來說說問題發生的原因與解決方案。... 繼續閱讀 ...
View Article從 .NET 7 開始就不鼓勵使用 .NET Generic Host 建立應用程式
這應該算是 .NET Core 的歷史包袱吧,任何軟體都一樣,沒有人可以預料未來的需求,所以當初設計的時候,多多少少一定會遇到一些不合理的地方。然而,因為當年 .NET Core 算是有承諾「絕對不會」有破壞性的 API 變更,所以一些早期設計不當的 API 全部都留下來了,也因為這樣,.NET 就需要設計一些新的 API 來取代「包裹」舊的...
View Article使用 C# 8.0 Async Streams 實現非同步串流 ASP.NET Core Web API
C# 8.0 引入了一個 Async Streams (非同步串流) 的語言特性,這個特性讓我們可以做到許多以前做不到的事,若用在 ASP.NET Core Web API 上面,你就可以很輕鬆的實現 API 資料串流功能,讓你可以透過「非同步」的方式有效率的處理大量資料。由於這個概念太過前衛,所以我們先從基本的語法開始,然後再來看看如何應用在 ASP.NET Core Web API 上面。......
View Article如何在 ASP.NET Core 9 加入 Swagger UI 介面
微軟從 ASP.NET Core 9 開始正式支援 OpenAPI規格,並推出 Microsoft.AspNetCore.OpenApi NuGet 套件,在建立 ASP.NET Core Web API 專案時,預設就會加入可以產生 OpenAI 規格的端點。不過,對許多開發人員來說,常用的 Swagger UI 介面卻不見了。今天這篇文章我就來說說怎樣把 Swagger UI 加回專案中。......
View Article