背景:万年Java8+SpringBoot2选手,探索go微服务开发 前置条件:看十分钟golang基本语法 windows10环境 go版本1.22 (最好>1.18) ---------------------------------------- ## golang 后端开发框架选型 ## 简单来说可以分 GoFrame (复杂的企业级单体项目 类比springboot)不支持微服务 gin 等 轻量级框架 go-zero(目前国内社区最活跃最稳定的go微服务)等 复杂的分布式微服务项目 istio属于云原生的网格平台 ---------------------------------------- go-zero搭建详解(网上的教程支离破碎) 最最最开始的环境搭建见https://go-zero.dev 看完golang + goctl + go-zero安装就行 一、新建文件夹 在根目录运行go mod init myProject( 自己的项目名 ) 得到一个go.mod 文件 (如果用goland创建新项目会自带mod文件) go.mod就是包管理描述文件 类比pom文件 只是不能自己编辑 二、自动创建目录结构 在根目录运行goctl api new 自己的项目名 例如 goctl api new myProject 三、安装依赖包 在根目录运行 go mod tidy 这一步会自动更新mod文件内的包信息 随后可以得到 项目结构: . ├── etc │ └── 项目名.yaml # 配置文件 可以配置ip 端口 数据库连接池等等 ├── internal │ ├── config │ │ └── config.go │ ├── handler │ │ ├── routes.go # 路由文件 │ │ └── userhandler.go # 可以理解为控制层 │ ├── logic │ │ └── userlogic.go # 可以理解为服务层 │ ├── svc │ │ └── servicecontext.go │ └── types │ └── types.go # 可以理解为DTO、VO ├── 项目名.api # 会根据API文件自动生成代码 └── 项目名.go # 启动文件 四、在启动文件【项目名.go】内调整yaml文件的路径 configFile的路径 要改成从最外层文件夹开始的路径 不然会报错: error: config file ...... The system cannot find the path specified. 五、编辑项目名.api 这个文件 具体见官方文档 包含syntax = "v1" //自定义版本号 一些struct 请求体和响应体 可以把struct合并 一些service 后续会根据API文件自动生成代码 六、自动生成代码 在api文件的上一级文件夹的命令行运行 goctl api go -api 具体api文件名字 -dir .(注意不要忘记点号) 例如 goctl api go -api myProject.api -dir . 看到done就是结束了 七、在logic服务层里写具体的业务逻辑方法 具体见官方文档 八、运行主函数 根据api文件的路由访问具体服务即可
极简go-zero框架搭建教程--推荐使用GoLand
于 2024-05-04 16:14:38 首次发布
![](https://img-home.csdnimg.cn/images/20240611030827.png)