Golang - Gin #34: 使用Gin和Swagger自動生成API文檔

閱讀時間約 2 分鐘
來源: Gin Logo + 自行用 Canva 製作

來源: Gin Logo + 自行用 Canva 製作


🚀 使用Gin和Swagger自動生成API文檔

當開發RESTful API時,有效的文檔是極其重要的,它可以幫助開發者快速理解和使用API。Swagger是一個強大的工具,用於自動生成和維護API文檔。

本文將指導你如何使用Swagger在Gin框架中自動生成API文檔,並提供一些維護的最佳實踐。


🧐 為什麼選擇Swagger?

  1. 標準化: Swagger遵循OpenAPI規範,這是一個業界標準。
  2. 交互性: Swagger UI允許用戶直接從文檔中測試API,無需其他工具。


🛠 如何整合Gin和Swagger?

安裝必要的套件

首先,我們需要安裝swag CLI工具和Gin的Swagger中間件。

go get -u github.com/swaggo/swag/cmd/swag
go get -u github.com/swaggo/gin-swagger
go get -u github.com/swaggo/files

使用Swag初始化

在你的主要應用文件中執行以下命令:

swag init

這將生成docs目錄,其中包含Swagger的文檔資料。

將Swagger UI加入Gin

在你的Gin應用中,導入必要的包並將Swagger中間件添加到路由。

import (
ginSwagger "github.com/swaggo/gin-swagger"
"github.com/swaggo/gin-swagger/swaggerFiles"
)

func main() {
r := gin.Default()
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
// other routes...
r.Run()
}


🎖 最佳實踐

  1. 保持文檔最新: 每次更新API時,確保運行swag init以更新文檔。
  2. 描述和詳細: 使用Swagger註釋提供充分的API描述和範例。
  3. 版本控制: 如果你的API有多個版本,確保在Swagger文檔中明確指出。


🔗 結論

利用Swagger與Gin結合,不僅可以自動生成API文檔,還可以提供一個交互式的界面,使其他開發者更容易理解和使用你的API。



感謝

謝謝大家看完這篇,如果您喜歡我的文章,歡迎 小額贊助我 ^^
avatar-img
31會員
194內容數
歡迎來到【代碼的詩情】:探索程式語言之美 系列,這是一場優雅的程式之旅,透過詩歌的抒發,尋找不同程式語言的美感和精髓。 在這個系列中,我們將透過文字的韻律,深入探索多種程式語言的核心概念和語法,以及它們獨特的應用和技巧。每一篇詩歌都是一個故事,每一段代碼都是一句詩句,讓代碼的旋律和詩情在其中相互交織。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
KH Huang的沙龍 的其他內容
實時數據更新在今天的應用程序中變得越來越重要。GraphQL訂閱提供了一種高效的方式來實現這一目標。 在這篇文章裡,我們將探討如何在Gin框架與GraphQL結合下,實現數據的實時更新,或者說,實現所謂的“訂閱”功能。
正確地追蹤和監控Web應用中的錯誤對於確保其健康運行和提供高質量的用戶體驗至關重要。
RabbitMQ是一個開源的消息代理軟件,通常用於實現應用程序之間的異步通訊。它允許應用程序發送和接收消息,而不必直接與其他應用程序進行交互。
WebAssembly(縮寫:Wasm)是一個開放標準,允許在Web瀏覽器中運行高性能代碼。它不是直接用於撰寫應用程式的語言,而是一種編譯目標,可讓你使用如Rust、C、C++等語言,編譯成能在瀏覽器中運行的代碼。
在大數據的時代,提供高效能和準確的搜尋功能是Web應用的關鍵要求之一。Elasticsearch是一個分佈式、RESTful搜尋和分析引擎,能夠幫助我們快速地檢索、分析和視覺化大量數據。
隨著Web應用規模的增長,資料存儲和讀取的效率成為性能瓶頸的主要原因之一。Redis,作為一個高效能、支援網路、可基於記憶體、可持久化的key-value資料庫,可以幫助我們解決這些問題。
實時數據更新在今天的應用程序中變得越來越重要。GraphQL訂閱提供了一種高效的方式來實現這一目標。 在這篇文章裡,我們將探討如何在Gin框架與GraphQL結合下,實現數據的實時更新,或者說,實現所謂的“訂閱”功能。
正確地追蹤和監控Web應用中的錯誤對於確保其健康運行和提供高質量的用戶體驗至關重要。
RabbitMQ是一個開源的消息代理軟件,通常用於實現應用程序之間的異步通訊。它允許應用程序發送和接收消息,而不必直接與其他應用程序進行交互。
WebAssembly(縮寫:Wasm)是一個開放標準,允許在Web瀏覽器中運行高性能代碼。它不是直接用於撰寫應用程式的語言,而是一種編譯目標,可讓你使用如Rust、C、C++等語言,編譯成能在瀏覽器中運行的代碼。
在大數據的時代,提供高效能和準確的搜尋功能是Web應用的關鍵要求之一。Elasticsearch是一個分佈式、RESTful搜尋和分析引擎,能夠幫助我們快速地檢索、分析和視覺化大量數據。
隨著Web應用規模的增長,資料存儲和讀取的效率成為性能瓶頸的主要原因之一。Redis,作為一個高效能、支援網路、可基於記憶體、可持久化的key-value資料庫,可以幫助我們解決這些問題。
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
※ 什麼是Web API API 就是後端開出來讓前端來用的介面,讓前端與後端可以溝通。 API流程: 終端使用者用任何一種裝置進入瀏覽器。 瀏覽器透過 API 向後端發出請求,請求查詢或修改資料。 後端透過 API 收到前端的請求後,取得資料並回應給前端。 前端渲染畫面,終端使用者
Thumbnail
本文檔介紹了在Swift中使用套件的詳細方法,包括如何引用第三方套件和自定義模組,如何創建自定義套件,以及一些常見的Swift套件。這些套件可以幫助開發者快速添加功能到項目中,提高開發效率和程式碼品質。
Thumbnail
  除了上篇提到的 Data Wrangler 外,SageMaker 還有許多配套的功能,其中有個叫做 Pipelines 的東西,說是可以用來構建、 管理及自動化深度學習流程,能夠節省人工操作,有那麼神?這次就來試試 Pipelines 能夠為我們帶來什麼體驗。
Thumbnail
  在上篇我們已經學習到怎麼在 SageMaker 上進行簡易訓練,可以說是踏入了第一步, SageMaker 提供了不少工具用來協助使用者能夠更快速的進行訓練,其中 Data Wrangler 便是用於訓練資料處理的工具,那麼,他好用嗎?必須用嗎?
Thumbnail
實踐AWS中使用Lambda來負責登入簽核及與OpenAI API溝通,並利用S3容器託管一個靜態網頁做為前端
Thumbnail
SpiffWorkflow 是一個專門針對業務流程的流程引擎,它與商業 BPMN 產品有所區別,適合應用在自有專案中,並且需要內含稍微複雜的商業流程。例如,對於需要外部程式與前端配合才能真正讓用戶輸入決斷的場景,SpiffWorkflow 是一個適合的解決方案。
※ 什麼是 RESTful API? 這種運用 HTTP 來表達語義的路由設計風格稱為 RESTful API,它描述了如何實現 Web API 的架構。所謂的 API 是應用程式介面 (application programming interface),網址也是一種應用程式的「介面」,故稱為
Thumbnail
使用Python開發後端API的經驗中應該會常常看到WSGI與ASGI這兩個名詞, 兩者的差異究竟是什麼呢? 就讓我們來為您科普一番。 什麼是WSGI 全名為「Web Server Gateway Interface」 Web伺服器閘道介面,主要規範HTTP請求如何與伺服器溝通, 通
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
Thumbnail
先前幾篇筆記介紹了網路請求,瀏覽器儲存資料的方式,那麼實務上,前端最常需要發送網路請求的時候,就是透過呼叫 API,去向後端工程師發送/請求資料,所以今天來記錄什麼是 API吧!
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
※ 什麼是Web API API 就是後端開出來讓前端來用的介面,讓前端與後端可以溝通。 API流程: 終端使用者用任何一種裝置進入瀏覽器。 瀏覽器透過 API 向後端發出請求,請求查詢或修改資料。 後端透過 API 收到前端的請求後,取得資料並回應給前端。 前端渲染畫面,終端使用者
Thumbnail
本文檔介紹了在Swift中使用套件的詳細方法,包括如何引用第三方套件和自定義模組,如何創建自定義套件,以及一些常見的Swift套件。這些套件可以幫助開發者快速添加功能到項目中,提高開發效率和程式碼品質。
Thumbnail
  除了上篇提到的 Data Wrangler 外,SageMaker 還有許多配套的功能,其中有個叫做 Pipelines 的東西,說是可以用來構建、 管理及自動化深度學習流程,能夠節省人工操作,有那麼神?這次就來試試 Pipelines 能夠為我們帶來什麼體驗。
Thumbnail
  在上篇我們已經學習到怎麼在 SageMaker 上進行簡易訓練,可以說是踏入了第一步, SageMaker 提供了不少工具用來協助使用者能夠更快速的進行訓練,其中 Data Wrangler 便是用於訓練資料處理的工具,那麼,他好用嗎?必須用嗎?
Thumbnail
實踐AWS中使用Lambda來負責登入簽核及與OpenAI API溝通,並利用S3容器託管一個靜態網頁做為前端
Thumbnail
SpiffWorkflow 是一個專門針對業務流程的流程引擎,它與商業 BPMN 產品有所區別,適合應用在自有專案中,並且需要內含稍微複雜的商業流程。例如,對於需要外部程式與前端配合才能真正讓用戶輸入決斷的場景,SpiffWorkflow 是一個適合的解決方案。
※ 什麼是 RESTful API? 這種運用 HTTP 來表達語義的路由設計風格稱為 RESTful API,它描述了如何實現 Web API 的架構。所謂的 API 是應用程式介面 (application programming interface),網址也是一種應用程式的「介面」,故稱為
Thumbnail
使用Python開發後端API的經驗中應該會常常看到WSGI與ASGI這兩個名詞, 兩者的差異究竟是什麼呢? 就讓我們來為您科普一番。 什麼是WSGI 全名為「Web Server Gateway Interface」 Web伺服器閘道介面,主要規範HTTP請求如何與伺服器溝通, 通
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
Thumbnail
先前幾篇筆記介紹了網路請求,瀏覽器儲存資料的方式,那麼實務上,前端最常需要發送網路請求的時候,就是透過呼叫 API,去向後端工程師發送/請求資料,所以今天來記錄什麼是 API吧!