一個簡單的Web API演示,帶有Swagger文檔,自定義錯誤處理,單位測試,JSONPATCH和HTTPCLIENT測試儀。具有一些主題的教程YouTube視頻。
該GitHub項目的目的是演示一個簡單的CRUD Web API應用程序,其中包含其他教程(包括YouTube視頻)和參考文獻,包括Swagger,單位測試,JSONPATCH,自定義錯誤處理和顯示,客戶端測試人員等。
Visual Studio解決方案有三個項目:contosopizza(Web API),contosopizza.tests(單位測試)和WebApicLient(一個簡單的HTTPCLIENT CONSOLE應用程序)

下面顯示了及其成員的控制器,模型和服務類及其成員摘要。

這是一個簡單的Web API,遵循標準CRUD(創建,讀取,更新和刪除)模式。 API操作的演示圖像如下所示。






這是一些屏幕捕獲,顯示Web API JSONPATCH演示。


這是代碼參考。
[
{
"value": "ModifiedPizza",
"path": "/name",
"op": "replace"
}
]

如果您想了解有關設置,安裝和使用JSONPATCH的Web API項目的更多信息,這是一個很棒的教程參考視頻。
使用JSONPATCH更新數據|初學者的網絡API系列
jsonpatch在ASP.NET核心Web API中
該教程和演示項目將顯示如何為Contoso Pizza Web API項目設置,配置和代碼一個簡單的自定義錯誤處理程序。
開發人員應計劃代碼中未經處理的錯誤。 Contoso Pizza Web API項目演示瞭如何做到這一點。在演示中,創建了一個端點,總是會引發一個未經手的異常。該項目具有一個自定義錯誤控制器,該控制器在將標準問題模型對象返回用戶之前處理和記錄異常。在程序配置中指定了錯誤控制器,以在不在開發環境中運行時路由到自定義錯誤控制器。開發環境是在調試啟動配置文件設置下指定的,除非另有說明,否則默認值是生產的。
要查看開發和生產之間錯誤顯示的差異,請先在開發模式下運行API。測試始終觸發未手動異常的端點。在Swagger UI中,您可以看到響應和異常細節。瀏覽器窗口具有錯誤結果的獨立而優雅的開發人員視圖。
要在生產模式下運行API,請刪除環境變量或手動將值設置為生產。由於Swagger UI不在生產模式下運行,因此您需要用URL手動測試API端點。用戶的最終結果是帶有標識符的一般錯誤。用戶將使用此信息創建麻煩票。然後,該公司可以完成詳細的故障排除,以將錯誤標識符與更詳細的內部記錄相匹配。

該教程和演示項目將向您展示如何在開發人員WebAPI項目中添加,設置,配置和驗證Swagger文檔。最終結果是在此代碼回購中。
Swashbuckle和Swagger是兩個流行的工具,用於生成Web API的開發人員文檔。 Swashbuckle是一個軟件包,可以添加到ASP.NET Core Web API項目中以集成Swagger UI。它具有三個主要組件:swashbuckle.aspnetcore.swagger,這是一個搖搖欲墜的對像模型和中間件,可將SwaggerDocument對象視為JSON端點; swashbuckle.aspnetcore.swaggergen,它是一種搖搖欲墜的發電機,可直接從路由,控制器和模型直接構建SwaggerDocument對象;和swashbuckle.aspnetcore.swaggerui,它是Swagger UI工具的嵌入式版本。它解釋了Swagger JSON,以建立一種可定制的,可自定義的體驗,以描述Web API功能。 Swagger(OpenAPI)是一種用於描述REST API的語言敏捷規範。它允許計算機和人類在不直接訪問源代碼的情況下了解REST API的功能。它的主要目標是最大程度地減少連接解耦服務所需的工作量。 ¹³⁴

該教程和演示項目將顯示如何為Contoso Pizza Web API項目設置,配置和代碼一個簡單的HTTPCLIENT。
在此YouTube視頻中,我們將學習如何創建一個連接到Web API並進行測試的簡單控制台應用程序項目。該視頻包括對項目運行和輸出的簡短演示,來自API。我們將首先在本地運行WebAPI以顯示Swagger UI,從而獲得OpenAPI文件。我們的Web API的JSON文件可以下載並保存到我們的項目目錄。播放列表系列中還有另一個視頻,該視頻顯示瞭如何設置和配置Swagger文檔。下一步是將新的控制台應用程序項目添加到我們的解決方案中。這將是連接到我們的Web API的HTTPCLIENT應用程序。接下來,我們將從先前保存的Swagger UI JSON文件中添加OpenAPI服務參考。 Visual Studio將自動生成與Contoso Pizza Web API交互所需的客戶碼類。我們將查看自動生成的代碼類。構造函數同時需要HTTPCLIENT對象實例和運行Web API的基本URL。如果您本地運行Web API,則可以從調試啟動配置文件中找到它。最後,我們可以編碼我們的項目,以創建對Contoso UI Pizza Web API的httpclient和代理服務,並嘗試檢索一些比薩餅。在運行HTTPCLIENT控制台應用程序之前,請確保Web API應用程序已經在本地運行。

該教程和演示項目將展示如何為WebAPI項目設置,配置和代碼簡單的單元測試。
在此視頻中,我們將討論如何使用CRUD控制器操作為Web API編寫簡單的單元測試。我們將使用Xunit和Fakeiteasy軟件包來編寫測試。我們將介紹單元測試的基礎知識,包括如何設置測試項目,如何為每個CRUD操作編寫測試,以及如何使用Xunit和Fakeiteasy創建模擬和存根。我們還將討論編寫單元測試的最佳實踐,例如保持測試獨立並確保它們易於閱讀和維護。

儘管引用了教程,視頻和文檔,但該項目在創造性上是我自己的代碼和風格,可以演示我的技術專業知識,並為GitHub上的集體技術知識做出了貢獻。我列出了一些我繪製了一些代碼示例和知識的資源。
初學者的系列to:Web API
Microsoft學習 - 使用ASP.NET Core Controller創建Web API
資料來源:與Bing的對話,11/10/2023(1)從Swashbuckle和Asp.net Core開始。 https://learn.microsoft.com/en-us/asp ....(2)ASP.NET核心Web API文檔,帶有Swagger/OpenAPI。 https://learn.microsoft.com/en-us/asp ....(3)什麼是Swagger,Swashbuckle和Swashbuckle UI。 https://stackoverflow.com/questions/4 ....(4)使用Swagger Documentation提高API的開發人員體驗.... https://learn.microsoft.com/en-us/tra .... asp.net core core core github上的核心文檔
jsonpatch在ASP.NET核心Web API中