在api/v1中加入一个home.go
package v2import ("github.com/gogf/gf/v2/frame/g"
)type HomeReq struct {g.Meta `path:"/" tags:"Home" method:"get" summary:"首页"`
}
type HomeRes struct {
}
gf gen ctrl
这时api根目下的hello.go为
package homeimport ("context""web/api/home/v2"
)type IHomeV2 interface {Home(ctx context.Context, req *v2.HomeReq) (res *v2.HomeRes, err error)
}
同样相关的controller则为:
数据库链接
在hack/yaml 中加入数据库的链接
# CLI tool, only in development environment.
# https://goframe.org/pages/viewpage.action?pageId=3673173
gfcli:docker:build: "-a amd64 -s linux -p temp -ew"tagPrefixes:- my.image.pub/my-app
database:default:- link: "mysql:root:123456@tcp(127.0.0.1:3306)/web"
只有加到这里才能用gf gen dao 生成相关的代码
同理在manifest中的config/config.yml
database:default:- link: "mysql:root:123456@tcp(127.0.0.1:3306)/web"
redis链接
# Redis配置
redis:default:address: 127.0.0.1:6379db: 0pass: "123456"minIdle: 5maxIdle: 20maxActive: 100idleTimeout: 600maxConnLifetime: 3600waitTimeout: 200
在main.go中引入mysql以及redis
package mainimport (_ "github.com/gogf/gf/contrib/drivers/mysql/v2"_ "github.com/gogf/gf/contrib/nosql/redis/v2""github.com/gogf/gf/v2/os/gctx"_ "web/internal/packed""web/internal/cmd"
)
func main() {cmd.Main.Run(gctx.GetInitCtx())
}
gf gen dao 生在相关代码
加入相关路由
package cmdimport ("context""github.com/gogf/gf/v2/frame/g""github.com/gogf/gf/v2/net/ghttp""github.com/gogf/gf/v2/os/gcmd""web/internal/controller/hello""web/internal/controller/home"
)var (Main = gcmd.Command{Name: "main",Usage: "main",Brief: "start http server",Func: func(ctx context.Context, parser *gcmd.Parser) (err error) {s := g.Server()s.Group("/", func(group *ghttp.RouterGroup) {group.Middleware(ghttp.MiddlewareHandlerResponse)group.Bind(hello.NewV1(),home.NewV2(),)})s.Run()return nil},}
)
运行代码
gf run main.go
运行结果: