玩轉C#之【Swagger 不是SWAG】

玩轉C#之【Swagger 不是SWAG】

更新於 發佈於 閱讀時間約 3 分鐘

大家要小心不要Google錯了

介紹

Swagger是SmartBear Software的API開發人員套件工具,它是OpenAPI規範的基礎規範。

簡單來說就是 API 文件產生器

在微軟的C#中有兩種Swagger的套件可以使用

  • Swashbuckle
  • NSwag

安裝方式

環境:ASP.NET6
NET6 目前如果用WebAPI專案範本會自動安裝好Swashbuckle

Swashbuckle

Swashbuckle 有三個主要套件:

  • Swashbuckle.AspNetCore.SwaggerGen:產生器是負責取得 API 的規格並產生
  • Swashbuckle.AspNetCore.Swagger: 讀取SwaggerGen產生的規格讓URL可以查看
  • Swashbuckle.AspNetCore.SwaggerUI:設定Swagger UI介面用

在Program.cs檔案中需要註冊AddSwaggerGen,並且在Middleware下加入

app.UseSwagger();
app.UseSwaggerUI();

GitHub範例

NSwag

需要安裝的套件
NSwag.AspNetCore

在Program.cs檔案中需要註冊AddOpenApiDocument();,並且在Middleware下加入

app.UseOpenApi();       // serve OpenAPI/Swagger documents
app.UseSwaggerUi3(); // serve Swagger UI
app.UseReDoc(); // serve ReDoc UI

GitHub範例
關於設定註解、回傳格式、回傳型別、Authorize Token、設定API版本之後會專門寫一篇文章跟大家講解

參考資料

Swagger 官方網站
微軟 Swagger文件

本篇已同步發表至個人部落格
https://moushih.com/2022ithome04/

鐵人賽文章:

https://ithelp.ithome.com.tw/articles/10287633

avatar-img
一代軍師
8會員
39內容數
我是這個部落格的作者,喜歡分享有關投資 💰、軟體開發 💻、占卜 🔮 和虛擬貨幣 🚀 的知識和經驗。
留言
avatar-img
留言分享你的想法!
一代軍師 的其他內容
盤面基本組成要素 十天干:甲乙丙丁戊己庚辛壬癸 十二地支:子丑寅卯辰巳午未申酉戌亥 五行:木、火、土、金、水 八門:休、生、傷、杜、景、死、驚、開 八神:符、蛇、陰、合、虎、武、九、天 九星:蓬、任、沖、輔、英、芮、柱、心、禽 八卦:坎、艮、震、兌、離、坤、乾 六個旬首:甲子戊、甲戊
Drawmind 畫鏡 主要目的是透過藝術治療,幫助個人減輕情感壓力、提升心理健康,並提供一個具有專業指導的平台,讓用戶進行情感表達、自我探索和康復。
原理 八字 八字不等於出生時間 八字是根據每個兩小時為一個單位的時辰來劃分的。 它包括年、月、日和時這四個要素,其中年、月、日分別對應天干地支。 即使缺少具體出生時刻,也仍然可以排出命盤進行分析。 紫微斗數 需要精確的出生的小時數,因為出生時間的稍微差異呈現出來的命盤會有天差地別,從而
盤面基本組成要素 十天干:甲乙丙丁戊己庚辛壬癸 十二地支:子丑寅卯辰巳午未申酉戌亥 五行:木、火、土、金、水 八門:休、生、傷、杜、景、死、驚、開 八神:符、蛇、陰、合、虎、武、九、天 九星:蓬、任、沖、輔、英、芮、柱、心、禽 八卦:坎、艮、震、兌、離、坤、乾 六個旬首:甲子戊、甲戊
Drawmind 畫鏡 主要目的是透過藝術治療,幫助個人減輕情感壓力、提升心理健康,並提供一個具有專業指導的平台,讓用戶進行情感表達、自我探索和康復。
原理 八字 八字不等於出生時間 八字是根據每個兩小時為一個單位的時辰來劃分的。 它包括年、月、日和時這四個要素,其中年、月、日分別對應天干地支。 即使缺少具體出生時刻,也仍然可以排出命盤進行分析。 紫微斗數 需要精確的出生的小時數,因為出生時間的稍微差異呈現出來的命盤會有天差地別,從而