【gin】【swag】

Nones發表於2024-05-08

@

目錄
  • 寫在前面
  • gin swagger
    • 安裝依賴
    • 新增註釋
      • 生成 api 檔案
    • 路由設定
    • 訪問
  • 原始碼分析
    • gin-swagger
  • 參考資料
    • 基礎/標準庫/第三方庫
    • golang 導航
    • 程式設計規範
    • 演算法|面試
    • 專案


寫在前面

  • 相關博文
  • 個人部落格首頁
  • 免責宣告:僅供學習交流使用!開源框架可能存在的風險和相關後果將完全由使用者自行承擔,本人不承擔任何法律責任。

gin swagger

安裝依賴

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

新增註釋

// @BasePath /api/v1

// PingExample godoc
// @Summary ping example
// @Schemes
// @Description do ping
// @Tags example
// @Accept json
// @Produce json
// @Success 200 {string} Helloworld
// @Router /example/helloworld [get]
func Helloworld(g *gin.Context)  {
	g.JSON(http.StatusOK,"helloworld")
}

生成 api 檔案

swag init 

路由設定

package main

import (
   "github.com/gin-gonic/gin"
   docs "github.com/your-self-go-project-name/docs" // 注意這個 docs 目錄需要填寫你自己專案的真實路徑
   swaggerfiles "github.com/swaggo/files"
   ginSwagger "github.com/swaggo/gin-swagger"
   "net/http"
)

func main()  {
   r := gin.Default()
   docs.SwaggerInfo.BasePath = "/api/v1" // api 檔案路徑
   v1 := r.Group("/api/v1")
   {
      eg := v1.Group("/example")
      {
         eg.GET("/helloworld",Helloworld)
      }
   }
   r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerfiles.Handler))
   r.Run(":8080")

}

訪問

http://host:port/sagger/index.html

原始碼分析

gin-swagger


參考資料

基礎/標準庫/第三方庫


  • 地鼠文件:比較多資料
  • topgoer
  • go awesome
  • golang 文件學習
  • golang 標準庫
  • go 檔案常用操作

golang 導航


  • golang 收集
  • go-guide
  • golang 導航
  • go-concurrency-guide
  • go-advice
  • golang 知識路線

程式設計規範


  • golang 程式設計規範
  • golang 規範示例

演算法|面試


  • cs 面試
  • 面試網站
  • Golang後端研發崗位相關面試題和簡歷
  • 路人張的面試筆記
  • golang 演算法

專案


  • golang 專案推薦
  • 7天系列
  • go專案推薦
  • go高效能程式設計

相關文章