当前位置: 首页 > news >正文

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

1.创建项目,初始化项目

goctl api new firstdemocdfirstdemo go mod tidy

2.运行

go run firstdemo.go

3.修改firstdemo.api文件后,重新生成代码

goctl api go--api./firstdemo.api--dir.go run firstdemo.go

4.添加和打印自定义配置

  1. 添加自定义配置firstdemo\etc\firstdemo-api.yaml
Name:firstdemo-apiHost:0.0.0.0Port:8888# 添加mysql的自定义配置MySql:Datasource:root:password@tcp(127.0.0.1:3306)/gin?charset=utf8mb4&parseTime=True&loc=Local
  1. 读取自定义配置firstdemo\internal\config\config.go
packageconfigimport"github.com/zeromicro/go-zero/rest"typeConfigstruct{rest.RestConf// 挂载自定义配置Mysqlstruct{Datasourcestring}}
  1. 将自定义配置挂载到上下文firstdemo\internal\svc\servicecontext.go
packagesvcimport("firstdemo/internal/config")typeServiceContextstruct{Config config.Config// 在上下文结构体中添加变量Datasourcestring}funcNewServiceContext(c config.Config)*ServiceContext{return&ServiceContext{Config:c,// 将config挂载到上下文结构体Datasource:c.Mysql.Datasource,}}
  1. 在handler中将结构体返回给前端firstdemo\internal\logic\firstdemologic.go
func(l*FirstdemoLogic)Firstdemo(req*types.Request)(resp*types.Response,errerror){// 获取自定义配置的mysql.datasourcedatasource:=l.svcCtx.Datasource resp=&types.Response{Message:"你好:"+req.Name+"\t"+datasource,}returnresp,nil}
  1. 启动应用时打印自定义配置firstdemo\firstdemo.go
packagemainimport("flag""fmt""firstdemo/internal/config""firstdemo/internal/handler""firstdemo/internal/svc""github.com/zeromicro/go-zero/core/conf""github.com/zeromicro/go-zero/rest")varconfigFile=flag.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

http://www.jsqmd.com/news/1203060/

相关文章:

  • CANN/asc-devkit Max函数SIMD API文档
  • iOS-UDID-Safari未来展望:iOS设备标识符获取技术的发展趋势
  • 通义千问32K上下文开源大模型:从零开始的完整部署指南
  • 2026 企业选型指南:SEO+GEO 优化公司全维度实测,避开 90% 踩坑陷阱 - GEO优化
  • 芝柏中国官方售后服务中心|电话和完整地址权威信息通告(2026年7月最新) - 亨得利钟表维修中心
  • “机器人奇妙夜”落地贵阳 擎天租打造“RaaS+文旅”商业新模型
  • 全自动颗粒包装机品牌推荐,广州恒尔技术实力遥遥领先 - 品牌速递
  • Awesome Claude Skills:企业级技术团队工作流自动化架构设计完整指南
  • 从零到一:Altium Designer 19实战PCB设计,嘉立创免费打样全流程解析
  • 氛围编程:Replit如何重塑AI教学的开发体验
  • iOS-UDID-Safari源码深度解析:三种实现方式的完整架构分析
  • 从理论到实践:磁盘性能关键指标(容量、寻址、传输率)的计算与场景解析
  • 水位监测,这六类传感器你都能说清原理和应用吗?
  • 2026年发泡硅胶管与发泡硅胶条行业供应格局及专业制造厂家综合观察 - 甄选服务推荐
  • GPT-5.6技术解析:程序化工具调用与三层模型策略实战指南
  • PurpleAdmin错误页面设计:404和500页面的专业实现
  • 2026株洲黄金奢侈品回收靠谱门店排行榜 湘奢汇等五家实力推荐 - 生活测评小能手
  • 通义灵码不是代码生成器,而是开发者认知外延接口
  • 从本地提权到域控沦陷:CVE-2021-1675 PrintNightmare漏洞武器化实战剖析
  • 终极指南:10分钟掌握stb单文件库,让C/C++开发效率提升300%
  • GoF设计模式——责任链模式
  • 本地离线电脑自动化助手,OpenClaw Win11 全版本适配指南(含安装包)
  • 快速提升编程能力:Algorithms-Leetcode-Javascript 中的经典算法与解题技巧
  • Cursor重构不是魔法——它依赖这6类代码特征才能100%安全,你写的代码达标了吗?
  • 美度中国官方售后服务中心|服务热线及完整地址权威信息声明(2026年7月最新) - 亨得利官方服务中心
  • Vue+Ant Design实现动态多屏视频监控布局
  • 雅典中国官方售后服务中心|服务热线及官方维修地址权威信息声明(2026年7月最新) - 亨得利官方服务中心
  • Eclipse IDE for Java EE 2024-03 最新版:从官网下载到环境配置的完整指南
  • 2026北京香奈儿回收避坑指南:闲置香奈儿变现选毓典奢品汇,避开各类回收套路 - 旧奢新值
  • 推荐一家靠谱的共相母线槽生产厂家, 工程配电选型可参考 - 企师傅推荐官