IRONSOFTWAREHOME

四種選擇替換.NET 9 API中的Swagger

4 Options to Replace Swagger in .NET 9 APIs

Tim Corey

30m 58s

隨著.NET 9的正式發布,Microsoft移除了其預設網頁API模板中對Swagger UI的內建支援。 雖然一些社區成員對此變動表示擔憂,但Tim Corey在他的视频中解釋,這一變更實際上賦予開發者更多的靈活性,並在程式碼與工具之間提供更清晰的分離。《4 Options to Replace Swagger in .NET 9 APIs》。

在本文中,我們將深入探討用於在.NET 9中生成OpenAPI文件的四個主要替代方案,這些都是基於Tim的實操视频。 如果您正在尋求升級現有項目或從零開始使用簡化API,此指南將幫助您了解可用的工具及其如何支持OpenAPI標準。

設定標準API專案

Tim首先在Visual Studio中建立了一個簡化的API專案,選擇了標準的ASP.NET Core Web API模板。

他特別強調要勾選增強OpenAPI支援的選項,這樣您的專案就可以通過JSON文件端點生成必要的OpenAPI文件。

專案運行後,Tim導航至預設的OpenAPI文件URL(例如,/swagger/v1/swagger.json)以查看原始的OpenAPI規範文件。 此文件包含有關API端點的結構化元資料,包括支持的GET, POST, DELETE等動詞。

儘管這是功能性的,Tim指出查看原始的OpenAPI文件並不友好。 為了提供更好的基於網路的文件介面,他接著展示了四個可以改善開發者和使用者體驗的外部工具。

選項1:Swagger UI - 熟悉的體驗

儘管它不再預設隨附,Swagger UI仍然是一個非常流行的工具。 Tim展示了如何使用必要的NuGet包 .NET: Swashbuckle.AspNetCore.SwaggerUI 將其帶回來。

在新專案中設置Swagger UI後,於9:43,他使用簡化的語法配置中間件並將啟動URL設置為/swagger。 這個UI提供了一個使用者友好的API文件介面,開發者可以在其中查看端點、了解請求參數並在瀏覽器中測試它們。

儘管Swagger UI現在是一個外部工具,它仍然支持OpenAPI規範,是開發過程中基礎文件需求的最佳選擇之一。

選項2:ReDoc - 清晰的唯讀API文件

Tim的第二個工具是ReDoc,它將您的OpenAPI文件轉換為一個精美的唯讀HTML網站。在新增OpenAPI包 Swashbuckle.AspNetCore.ReDoc 之後,他將文件映射到 /api/docs。

與Swagger UI不同,ReDoc不允許端點測試。 然而,它在作為適合外部使用者和客戶的網路文件介面中大放異彩。 如果您僅專注於定義REST APIs並顯示結構化文件,ReDoc非常適合。

值得注意的是,ReDoc會根據提供的OpenAPI規範自動生成內容,涵蓋預期的響應、參數和資料型別。這非常適合優先考慮文件內建支援優化而非交互的專案。

選項3:NSwag - 文件+程式碼生成

接下來,Tim深入介紹了NSwag,一個靈活且功能豐富的工具,它不僅僅是文件化API,它還可以生成多種語言的客戶端程式碼,如C#,TypeScript等。 在安裝NSwag.AspNetCore NuGet包之後,他設置了一個類似Swagger的介面,將其映射到同一個JSON端點。

Tim解釋說NSwag支持Swagger規範和OpenAPI標準,允許開發者選擇他們喜歡的格式。 儘管UI看起來與Swagger相似,但真正讓NSwag脫穎而出的是其外部工具庫和高級功能(如自動客戶端建立)。

他指出,NSwag的程式碼生成能力有助於減少手動整合API的工作量,特別是涉及多個服務或工具的專案中。 這是為構建穩健的客戶端-伺服器通信的團隊提供的強大解決方案。

選項4:Scaler - Tim最喜歡的API測試選擇

Tim介紹了Scaler UI,這是他在所有選項中的個人最愛,被描述為Postman和文件在瀏覽器中的結合。 在新增Scaler.AspNetCore包之後,只需一行程式碼(app.MapScalerApiReference())即可啟用介面。

Scaler支持完全的互動性,包括執行帶查詢參數、標頭和Cookies的請求。 它的特點是實時反饋—立即返回響應時間、標頭和結果負載。

Scaler的一個突出特點是能夠為不同語言(PHP,Node,Python,C#通過HttpClient和RestSharp)生成curl命令和客戶端程式碼片段。 Tim發現這在開發過程中快速復制和粘貼API調用非常有用。

Scaler還允許在淺色和深色模式之間切換,這使它成為一個使用者友好的API文件平臺,並且有進一步改進的空間。 作為一個開源API平台,Scaler正在隨著積極的維護和社區的興趣而不斷發展。

最後的想法:選擇帶來靈活性

在影片的最後一段時間,Tim強調從.NET網頁模板中刪除Swagger UI可能看似一個步伐倒退,但實際上是一個擁抱現代、更具針對性解決方案的機會。 這一變革與Microsoft的快速發布周期一致,其中功能變得更具模塊化和重點。

OpenAPI支援現如今更像是一個一級運作內容,而不是一個僵化的本地實現。 您可以根據專案的需要自由組合使用工具—無論是使用Scaler進行互動測試,使用NSwag生成客戶程式碼,或是使用ReDoc進行乾淨的輸出。

Tim鼓勵開發者探索這些工具,看看哪一個適合他們的工作流程,甚至可能在不同的環境中使用多個UI(例如,一個用於開發,另一個用於公共文件)。 所有這些選項都支持OpenAPI和Swagger規範的事實意味著您不會被鎖定在單一供應商或工作流程中。

結論

由於在.NET 9中不再預設包括Swagger UI,開發者現在有自由選擇最適合其OpenAPI文件需求的工具。 無論您是在文件化HTTP API、服務外部工具,還是支持內部開發,都有解決方案與您的目標一致。

使用如Swagger UI、ReDoc、NSwag和Scaler等工具,API的文件化和測試從未如此可定製或開發者友好。 正如Tim Corey在其影片中向我們展示的,所需的只是一些包,數行程式碼,以及探索能最好地服務於您的應用程式和團隊的工具的慾望。

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
獲取您的無義務諮詢
填寫以下表格或發送電子郵件至sales@ironsoftware.com
您的詳細資訊將始終保密。
被全球數百萬工程師信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立