go-zero安装
go版本1.20.2
go环境变量
export GOROOT=/Users/yelin/go_dev/go export GOPATH=/Users/yelin/go_dev/project export PATH=$GOROOT/bin:$GOPATH/bin:$PATH
下载goctl
GOPROXY=https://goproxy.cn/,direct go install github.com/zeromicro/go-zero/tools/goctl@latest
安装protoc & protoc-gen-go
goctl env check -i -f --verbose
创建测试项目hellow,进入执行
go mod init hellow
创建内容
goctl api new hellow1
下载依赖
go mod tidy
在hellow1/logic/hellow1logic.go中写逻辑
func (l *Hellow1Logic) Hellow1(req *types.Request) (resp *types.Response, err error) { // todo: add your logic here and delete this line resp = &types.Response{ Message: "hello go", } return }
运行
go run hellow1/hellow1.go -f hellow1/etc/hellow1-api.yaml
微服务版本
建立目录,如hellow_rpc,进入后
创建order服务
goctl api new order
创建user服务
goctl api new user
建立工作区
go work init go work use order go work use user //难道实际测试好像没有自动生成,手动改写go.work go 1.20 use ( ./order ./user )
创建user的rpc文件,/user/rpc/user.proto
syntax = "proto3"; package user; // protoc-gen-go 版本大于1.4.0, proto文件需要加上go_package,否则无法生成 option go_package = "./user"; message IdRequest { string id = 1; } message UserResponse { // 用户id string id = 1; // 用户名称 string name = 2; // 用户性别 string gender = 3; } service User { rpc getUser(IdRequest) returns(UserResponse); }
执行创建
goctl rpc protoc user.proto --go_out=./types --go-grpc_out=./types --zrpc_out=.
跑完后,可以把里面除了user.protoc外的内容都放到上一层,然后上一层的user.api可以删除