下载相关依赖
go get github.com/swaggo/swag/cmd/swag
go get -u github.com/swaggo/gin-swagger
go get -u github.com/swaggo/gin-swagger/swaggerFiles
在项目目录执行,生成文档
swag init
此时项目会生成文件夹
若执行swag init出现一下报错(本项目mac环境):
command not found
编辑.bash_profile文件
#在PATH环境变量添加:Users/ming/go/bin
#go get下载成功后swag命令在~/go/bin下
export PATH=$PATH:$MAVEN_HOME/bin:Users/ming/go/bin
使配置文件生效
source .bash_profile
项目代码
package main
import (
"ginStudy/db"
_ "ginStudy/docs"
"github.com/gin-gonic/gin"
ginSwagger "github.com/swaggo/gin-swagger"
"github.com/swaggo/gin-swagger/swaggerFiles"
"net/http"
)
//初始化连接数据库
func init() {
db.InitDb()
}
func main() {
// 1.创建路由
r := gin.Default()
// 2.绑定路由规则,执行的函数
// gin.Context,封装了request和response
/*r.GET("/user/selectById", func(c *gin.Context) {
//指定默认值
//http://localhost:8080/user 才会打印出来默认的值
id := c.DefaultQuery("id", "")
if len(id) > 0 {
//字符串装int
n, err := strconv.Atoi(id)
if err != nil {
fmt.Println(err)
}
c.JSON(200, gin.H{"message": "success", "status": 200, "data": user.SelectById(n)})
}
//c.JSON(500, gin.H{"message": "fail", "status": 500, "data": ""})
})
r.GET("/", func(c *gin.Context) {
user.Insert("明", "13416908424", "13416908424")
//响应json格式
c.JSON(200, gin.H{"message": "success", "status": 200, "data": "some Json data"})
})*/
//登录
r.POST("/login", login)
//swagger访问
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
// 3.监听端口,Run("里面不指定端口号默认为8080")
r.Run(":8888")
}
// @登录
// @Description login
// @Accept json
// @Produce json
// @Param phone path string true "phone"
// @Param password path string true "password"
// @Success 200 {string} string "ok"
// @Router /login [post]
func login(c *gin.Context) {
phone := c.PostForm("phone")
password := c.PostForm("password")
c.String(http.StatusOK, "Hello world "+phone+"_"+password)
}
访问“http://localhost:8888/swagger/index.html”
若访问swagger时出现“Failed to load spec…,则在import引入以下包即可”