go api swag

闭坑做个总结。
  • 1 特别是报: Fetch errorInternal Server Error doc.json 的时候。是因为没有导入依赖包doc的问题
import _ "go_code/docs"
  • 2 要使用swaggo,首先需要安装swag cli,在IDE控制台安装
go get -u github.com/swaggo/swag/cmd/swag
  • 3 安装完毕后在控制台执行swag init后出现docs包,如果报错的话,错误如下:


    image.png

找到之前swag的安装路径,在该路径下执行:go install就可以,然后再继续执行swag init初始化 (go 版本:1.18)

  • 4 编写swag api 测试案例代码.
package main

import (
    "fmt"
    "github.com/gin-gonic/gin"
    ginSwagger "github.com/swaggo/gin-swagger"
    "github.com/swaggo/gin-swagger/swaggerFiles"
    "net/http"

    _ "...../docs"  //依赖项必须导入
)

// @host 127.0.0.1:8080   //必须
// @BasePath /api/v1       //必须
func main() {
    r := gin.Default()
    r.GET("/swagger/*index", ginSwagger.WrapHandler(swaggerFiles.Handler))

    v1 := r.Group("/api/v1")
    {
        v1.GET("/demo", SayHello)
    }
    _ = r.Run(":8080")
}

// @Summary 测试SayHello
// @Description 向你说Hello
// @Tags 测试
// @Accept json
// @Param who query string true "人名"
// @Success 200 {string} string "{"msg": "hello sos"}"
// @Failure 400 {string} string "{"msg": "who are you"}"
// @Router /demo [get]
func SayHello(c *gin.Context) {
    name := c.Query("who")
    if name == "" {
        c.JSON(http.StatusBadRequest, gin.H{"info": "who are you"})
        return
    }
    c.JSON(http.StatusOK, name)
}
  • 5 执行代码后在浏览器打开:http://localhost:8080/swagger/index.html 会出现如下页面:
    1652803330(1).png

你可能感兴趣的:(go api swag)