go-zero简介

思考并回答以下问题:

安装

在项目目录下通过如下命令安装:

1
2
3
GO111MODULE=on 
GOPROXY=https://goproxy.cn/,direct
go get -u github.com/zeromicro/go-zero

快速开始

1、完整示例请查看

快速构建高并发微服务

快速构建高并发微服务-多RPC版

2、安装goctl工具

goctl读作go control,不要读成go C-T-L。goctl的意思是不要被代码控制,而是要去控制它。其中的go不是指golang。

1
2
3
GO111MODULE=on 
GOPROXY=https://goproxy.cn/,direct
go get -u github.com/zeromicro/go-zero/tools/goctl

如果使用go1.16版本, 可以使用go install命令安装
1
2
GOPROXY=https://goproxy.cn/,direct 
go install github.com/zeromicro/go-zero/tools/goctl@latest

确保goctl可执行

3、快速生成api服务

1
2
3
4
5
goctl api new greet
cd greet
go mod init
go mod tidy
go run greet.go -f etc/greet-api.yaml

默认侦听在8888端口(可以在配置文件里修改),可以通过curl请求:

1
curl -i http://localhost:8888/from/you

返回如下:
1
2
3
4
5
6
HTTP/1.1 200 OK
Content-Type: application/json
Date: Thu, 22 Oct 2020 14:03:18 GMT
Content-Length: 14

{"message":""}

编写业务代码:

  • api文件定义了服务对外暴露的路由,可参考api规范
  • 可以在servicecontext.go里面传递依赖给logic,比如mysql, redis等
  • 在api定义的get/post/put/delete等请求对应的logic里增加业务处理逻辑

4、可以根据api文件生成前端需要的Java, TypeScript, Dart, JavaScript代码

1
2
3
goctl api java -api greet.api -dir greet
goctl api dart -api greet.api -dir greet
...

0%