zoukankan      html  css  js  c++  java
  • golang gin框架 swag在线api文档

    一 安装swag

    go get github.com/swaggo/swag/cmd/swag

    二 安装gin-swagger

    go get -u github.com/swaggo/gin-swagger
    
    go get -u github.com/swaggo/gin-swagger/swaggerFiles

    三 生成docs文件夹

    swag init  
    • swag init一定要和main.go处于同一级目录
    • main程序名称必须为main.go, 本人尝试过别的名字比如wbw.go的时候会报如下错误,有知道如何解决的朋友可教我一下
      cannot parse source files /home/wbw/go/src/debuggrpc/test/testswag/main.go: open /home/wbw/go/src/debuggrpc/test/testswag/main.go: no such file or directory      

     

    四 gin引用swag

      main.go

    package main
    
    import (
        "debuggrpc/test/testswag/controller"
        "github.com/gin-gonic/gin"
        "github.com/swaggo/gin-swagger/swaggerFiles"
    
        ginSwagger "github.com/swaggo/gin-swagger"
    
        _ "debuggrpc/test/testswag/docs"
    
    )
    
    // @title TestSwg API
    // @version 1.0
    
    // @host 127.0.0.1:9501
    // @BasePath /testswag/v1.0
    func main(){
        router := gin.Default()
        // v1
        r1 := router.Group("/testswag/v1.0")
        {
            r1.GET("/Baseinfo", controller.Baseinfo)
    
        }
        router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
        router.Run( "0.0.0.0:8080")
    }

      base.go

    package controller
    
    import (
        "github.com/gin-gonic/gin"
        "net/http"
    )
    
    // @Summary 获取基础信息列表
    // @Description 获取基础信息列表
    // @Tags 基础信息
    // @Accept json
    // @Success 200 {json} json "{"errno":0,"errmsg": "成功","data":infolist}"
    // @Failure 400 {json} json "{"errno":4502,"errmsg": "查询失败"}"
    // @Router /Baseinfo [post]
    func Baseinfo(ctx *gin.Context) {
        resp := make(map[string]interface{})
        resp["data"] = "baseinfo"
        resp["errno"] = 200
        resp["errmsg"] = "success"
        ctx.JSON(http.StatusOK, resp)
        return
    }

      运行main.go之后,浏览器分别访问 http://localhost:8080/testswag/v1.0/Baseinfo   

    http://localhost:8080/swagger/index.html

    • 请注意main代码中的import
    • 请记住导入  _ "debuggrpc/test/testswag/docs"
    • swag其他注释比如param等请自行查阅 Swaggo · Go语言中文文档 (topgoer.com)
    • 记得更新文档(swag注释)后要swag init一下并重启gin
    • gin的分组为router.group; swag的分组为tag标签

     

  • 相关阅读:
    如何优雅地结束线程的生命周期
    线程的interrupt()
    线程的join()方法
    守护线程Daemon
    使用多线程模拟一个银行叫号窗口
    多线程介绍
    十八、MySQL 数据排名查询某条数据是总数据的第几条
    spring cloud stream整合
    036线程进程(重要)
    035server端并发聊天
  • 原文地址:https://www.cnblogs.com/bushuwei/p/15137619.html
Copyright © 2011-2022 走看看