Go-Zero环境需通过完整demo服务验证:先创建空目录并用goctl api new生成项目,再go mod init和tidy拉取依赖(需配置GOPROXY),接着go run启动服务,最后用curl测试/health和自定义API路由确保全链路通畅。

Go-Zero安装完成后,必须通过一个可运行、可访问、可观察日志的完整 demo 服务来验证环境是否真正就绪——只跑通 goctl version 或 go version 不代表框架链路通畅,比如 goctl 二进制没加进 PATH、YAML 解析器缺失、或 conf 包依赖未正确链接,都会导致生成代码后编译失败或启动崩溃。
创建并生成 demo 项目
在任意空目录下执行:
mkdir myapi && cd myapi
这一步不能跳过,goctl api new 要求当前是空目录,否则会报 directory not empty 错误并中止。
运行生成命令:
goctl api new demo
成功后你会看到 demo.api、demo.go、etc/demo-api.yaml、internal/ 等文件结构。如果提示 command not found: goctl,说明 GOPATH/bin 未加入系统 PATH,需按平台补全(macOS/Linux 编辑 ~/.zshrc 加 export PATH=$PATH:$(go env GOPATH)/bin;Windows 在系统环境变量 Path 中添加 %GOPATH%\bin)。
初始化模块并编译运行
进入项目根目录后,先初始化 Go 模块:
go mod init demo
接着拉取所有依赖:
go mod tidy
⚠️ 注意:若此步卡住或报 unknown revision,大概率是 GOPROXY 未设置。立即执行:go env -w GOPROXY=https://goproxy.io,direct(或阿里云镜像 https://mirrors.aliyun.com/goproxy),再重试 go mod tidy。
编译并运行服务:
go run demo.go
服务默认监听 0.0.0.0:8080,控制台会输出类似 Starting server at 0.0.0.0:8080... 的日志。此时不要关闭终端。
验证服务可用性
打开新终端,用 curl 测试健康接口:
curl -i http://localhost:8080/health
预期返回 HTTP 200 和 JSON 响应体 {"status":"ok"}。这是 go-zero 模板内置的健康检查路由,不依赖任何业务逻辑,纯框架层响应。
再测试一个真实 API 路由(需先确认 demo.api 中已定义):
打开 demo.api 文件,查找 get /api/demo/from/path 这类示例路由;若不存在,手动添加一行:get /api/demo/test (TestReq) returns (TestResp),然后重新生成代码:goctl api go -api demo.api -dir .,再 go run demo.go。
最后发起请求:
curl "http://localhost:8080/api/demo/test"
若返回 {"message":"你好"},说明从 API 定义→代码生成→HTTP 路由注册→Handler 执行→响应写出整条链路完全打通。


















