5.7 自动化生成 model、dao、handler、routers 以及 Swagger 接口文档

代码生成 API 文档 Go 语言 自动化工具 Swagger
文章介绍了如何通过自动化工具生成Go项目中的model、dao、handler、routers以及Swagger接口文档。首先,使用`gormgen`工具生成model和dao,通过指定数据库连接信息和表名即可完成。接着,使用`handlergen`工具生成handler和routers,同样只需指定表名。然后,通过执行`swagger.sh`脚本生成Swagger接口文档。生成的路由可以通过注册到指定的路由组中,项目重启后即可访问生成的Swagger文档。整个过程旨在提高开发效率,减少手动编写代码的工作量。
文章内容
思维导图
常见问题
社交分享

1. 生成 model、dao

示例:

# 根目录下执行  
go run cmd/gormgen/main.go -dsn "root:123456789@tcp(127.0.0.1:3306)/gin_api_mono?charset=utf8mb4&parseTime=True&loc=Local" -tables "admin"

具体文档:cmd/gormgen/README.md

2. 生成 handler、routers

示例:

# 根目录下执行  
go run cmd/handlergen/main.go -table "admin"

具体文档:cmd/handlergen/README.md

3. 生成 Swagger 接口文档

# 根目录下执行
./scripts/swagger.sh

4. 注册路由

// 定义自动生成的路由组前缀为 /api
generatedRouterGroup := mux.Group("/api")  
// 注册路由  
admin.RegisterGeneratedAdminRoutes(logger, db, generatedRouterGroup)

文件地址:internal/router/router.go

5. 重启项目

项目重启后访问:http://127.0.0.1:9999/swagger/index.html 会看到生成的接口文档。

获取源码,可添加我微信 wx-xinliang 。


有启发,左下角点击“启发”告诉我呀,点我即可直接跳转到小册目录合集

思维导图生成中,请稍候...

问题 1: 如何生成 model 和 dao?
回答: 在根目录下执行命令 go run cmd/gormgen/main.go -dsn "root:123456789@tcp(127.0.0.1:3306)/gin_api_mono?charset=utf8mb4&parseTime=True&loc=Local" -tables "admin",具体文档可参考 cmd/gormgen/README.md

问题 2: 如何生成 handler 和 routers?
回答: 在根目录下执行命令 go run cmd/handlergen/main.go -table "admin",具体文档可参考 cmd/handlergen/README.md

问题 3: 如何生成 Swagger 接口文档?
回答: 在根目录下执行脚本 ./scripts/swagger.sh 即可生成 Swagger 接口文档。

问题 4: 如何注册自动生成的路由?
回答:internal/router/router.go 文件中,定义路由组前缀为 /api,并调用 admin.RegisterGeneratedAdminRoutes(logger, db, generatedRouterGroup) 注册路由。

问题 5: 项目重启后如何查看生成的 Swagger 接口文档?
回答: 项目重启后,访问 http://127.0.0.1:9999/swagger/index.html 即可查看生成的 Swagger 接口文档。

问题 6: 如何获取源码?
回答: 可以添加微信 wx-xinliang 获取源码。

问题 7: 生成 model 和 dao 时需要提供哪些参数?
回答: 需要提供数据库连接字符串(-dsn)和目标表名(-tables)。

问题 8: 生成 handler 和 routers 时需要提供哪些参数?
回答: 需要提供目标表名(-table)。

问题 9: 自动生成的路由组前缀是什么?
回答: 自动生成的路由组前缀是 /api

问题 10: 如何反馈文章是否有启发?
回答: 可以点击文章左下角的“启发”按钮,或直接跳转到小册目录合集页面进行反馈。