goctl创建项目,添加自定义配置

发布时间:2026/7/16 23:15:11
goctl创建项目,添加自定义配置 1.创建项目初始化项目goctl api new firstdemocdfirstdemo go mod tidy2.运行go run firstdemo.go3.修改firstdemo.api文件后重新生成代码goctl api go--api./firstdemo.api--dir.go run firstdemo.go4.添加和打印自定义配置添加自定义配置firstdemo\etc\firstdemo-api.yamlName:firstdemo-apiHost:0.0.0.0Port:8888# 添加mysql的自定义配置MySql:Datasource:root:passwordtcp(127.0.0.1:3306)/gin?charsetutf8mb4parseTimeTruelocLocal读取自定义配置firstdemo\internal\config\config.gopackageconfigimportgithub.com/zeromicro/go-zero/resttypeConfigstruct{rest.RestConf// 挂载自定义配置Mysqlstruct{Datasourcestring}}将自定义配置挂载到上下文firstdemo\internal\svc\servicecontext.gopackagesvcimport(firstdemo/internal/config)typeServiceContextstruct{Config config.Config// 在上下文结构体中添加变量Datasourcestring}funcNewServiceContext(c config.Config)*ServiceContext{returnServiceContext{Config:c,// 将config挂载到上下文结构体Datasource:c.Mysql.Datasource,}}在handler中将结构体返回给前端firstdemo\internal\logic\firstdemologic.gofunc(l*FirstdemoLogic)Firstdemo(req*types.Request)(resp*types.Response,errerror){// 获取自定义配置的mysql.datasourcedatasource:l.svcCtx.Datasource resptypes.Response{Message:你好:req.Name\tdatasource,}returnresp,nil}启动应用时打印自定义配置firstdemo\firstdemo.gopackagemainimport(flagfmtfirstdemo/internal/configfirstdemo/internal/handlerfirstdemo/internal/svcgithub.com/zeromicro/go-zero/core/confgithub.com/zeromicro/go-zero/rest)varconfigFileflag.String(f,etc/firstdemo-api.yaml,the config file)funcmain(){flag.Parse()// 初始化配置文件varc config.Config conf.MustLoad(*configFile,c)fmt.Println(host:port,c.Host,c.Port)// 输出自定义配置fmt.Println(mysql database: ,c.Mysql.Datasource)// 创建服务server:rest.MustNewServer(c.RestConf)deferserver.Stop()// 注册上下文ctx:svc.NewServiceContext(c)handler.RegisterHandlers(server,ctx)// 启动服务fmt.Printf(Starting server at %s:%d...\n,c.Host,c.Port)server.Start()}5.重启并查看结果go run firstdemo.go