第一步 配置.air.toml文件
exclude_dir = ["assets", "tmp", "vendor", "frontend/node_modules","docs"] // 一定要有docs这个
第二步 监听swagger.json文件
func main() {
// 返回一个路由引擎
r := gin.Default()
r.Use(cors.Default())
/*
热加载swagger.json文件
*/
r.StaticFile("swagger.json", "./docs/swagger.json")
url := ginSwagger.URL("http://127.0.0.1:8889/swagger.json")
// 注册 Swagger UI
r.GET("/swagger/*any",ginSwagger.WrapHandler(swaggerFiles.Handler,url))
var user User
r.GET("/web/:id/:name/:age", user.Bind)
// 启动服务
r.Run(":8889")
}
第三步 实现每次热编译都自动构建 在main包中的init函数里加入构建命令
func init() {
// 构建命令
cmd := exec.Command("go", "run", "github.com/swaggo/swag/cmd/swag", "init")
// 设置命令执行的工作目录
cmd.Dir = "." // 替换为你的项目路径
// 设置命令的标准输出和错误输出
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
// 执行命令
err := cmd.Run()
if err != nil {
fmt.Println("Error running command:", err)
}
}
以上步骤都结束了你就可以执行 go run github.com\cosmtrek\air 把项目跑起来了实现自动重载了(只建议在开发环境使用生产环境就可以直接删了init函数和监听swagger.json文件的那两行)