gin swagger使用

==背景==

一直都是使用showdoc来管理接口文档,有些麻烦。

在网上调查了一下自动管理文档的插件,发现大家都在用swagger,

于是尝试用一下gin-swagger插件

 

==版本==

go版本:1.18

 

==插件安装==

1、安装swag命令插件,用于执行swag命令

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

 

2、安装swagger插件

go get github.com/swaggo/gin-swagger
go get github.com/swaggo/files

 

==接口代码==

package main

import (
    "fmt"
    "github.com/gin-gonic/gin"
    swaggerFiles "github.com/swaggo/files"
    ginSwagger "github.com/swaggo/gin-swagger"
    _ "golang-demo/docs"
)

// @title goweb project
// @version 1.0
// @description this is goweb server.
// @host 127.0.0.1:6912
// @BasePath /api/v1
func main() {
    engine := gin.Default()
    engine.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))

    userGroup := engine.Group("/user")
    userGroup.POST("/login", loginHandler)
    _ = engine.Run(":6912")
}

// @Summary 用户登录
// @Description 用户登录
// @Accept json
// @Produce json
// @Success 200 {string} string "success"
// @Router /login [post]
func loginHandler(context *gin.Context) {
    fullPath := "用户登录:" + context.FullPath()
    writeString, _ := context.Writer.WriteString(fullPath)
    fmt.Println(writeString)
}

 

==生成doc==

在程序的根路径下执行swag命令,生成接口文档

swag init -g .\gin\swagger\swagger01.go

 

命令执行成功之后,可以看到在根目录下生成了相关文件,

包括docs.go,swagger.json,swagger.yaml

 

==引入doc==

将docs目录引入到router所在的go文件中去。

 

==访问文档==

启动后台服务,然后通过浏览器打开swagger接口文档

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

 

页面截图:

 

==实际命令==

实际项目中的命令样例,其中service_api.go中定义了swagger的全局说明描述。

swag init -g .\gmqtt\plugin\service\service_api.go -o .\gmqtt\docs

 

--END--

 

posted @ 2022-09-09 15:21  大墨垂杨  阅读(139)  评论(0编辑  收藏  举报