前几天简单上手了一下 go-zero 框架,去官网看了下文档,然后网上的博客,还有 B 站的视频,还有助手的项目,有了一些了解

这东西其实就是一个全自动的 web 和 RPC 框架,你只需要关注于设计,还有你的业务代码就好了,其他的 go-zero 都能帮你搞定

这东西你首先需要定义私有格式的 api 文件,这东西能很好的定义你的服务,即使直接交给前端,前端都能看懂

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
type (
LoginReq {
Username string `json:"username"`
Password string `json:"password"`
}

LoginReply {
Id int64 `json:"id"`
Name string `json:"name"`
Gender string `json:"gender"`
AccessToken string `json:"accessToken"`
AccessExpire int64 `json:"accessExpire"`
RefreshAfter int64 `json:"refreshAfter"`
}
)

service user-api {
@handler login
post /user/login (LoginReq) returns (LoginReply)
}

感觉就跟 proto 很像,然后就很清晰明了

之后只需要一行命令,就能自动把整个路由哇,控制器哇,什么的方法函数都创建出来

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ tree greet
greet
├── etc
│ └── greet-api.yaml
├── greet.api
├── greet.go
└── internal
├── config
│ └── config.go
├── handler
│ ├── greethandler.go
│ └── routes.go
├── logic
│ └── greetlogic.go
├── svc
│ └── servicecontext.go
└── types
└── types.go

然后你就去填写里面空白的方法函数就行了

然后这东西也可以搞微服务的,使用 RPC 交流,但是我暂时没看,先把单体服务搞熟悉吧

然后就是这东西目前没有一个好的系统的教学,官方文档有些抽象,然后官方教学视频条理也不够清晰

我目前暂时就是逛官方文档吧,把里面的 demo 都跑了

然后就是在看助手的项目,那个社团招新系统,就这样吧