refine goctl rpc generator
This commit is contained in:
@@ -17,7 +17,7 @@ $ goctl rpc template -o=user.proto
|
||||
```golang
|
||||
syntax = "proto3";
|
||||
|
||||
package remoteuser;
|
||||
package remote;
|
||||
|
||||
message Request {
|
||||
// 用户名
|
||||
@@ -33,7 +33,7 @@ message Response {
|
||||
string gender = 2;
|
||||
}
|
||||
|
||||
service User{
|
||||
service User {
|
||||
// 登录
|
||||
rpc Login(Request)returns(Response);
|
||||
}
|
||||
@@ -82,17 +82,17 @@ user
|
||||
|
||||
### go mod 工程
|
||||
对于`$ go version`不低于1.5版本的的工程,会优先寻找`$ go env GOMODCACHE`目录,如果没有则去`${GOPATH}`中查找(见下文),而低于1.5版本的则会优先从`${GOPATH}/pkg/mod`目录下查找,否则也从`% GOPATH`中查找(见下文)
|
||||
|
||||
|
||||
### go path工程
|
||||
对于没有使用go mod的工程,则默认当作在`${GOPATH}`中处理(暂不支持用户自定义的GOPATH),而这种情况下则会默认从`${GOPATH}/src`中查找
|
||||
|
||||
|
||||
> 注意:
|
||||
* 对于以上两种工程如果没有在对应目录查找到`protoc-gen-go`则会提示相应错误,尽管`protoc-gen-go`可能在其他已经设置环境变量的目录中,这个将在后面版本进行优化。
|
||||
* 对于go mod工程,如果工程没有依赖`github.com/golang/protobuf`则需要提前引入。
|
||||
|
||||
|
||||
### 好处
|
||||
* 保证grpc代码生成规范的一致性
|
||||
|
||||
|
||||
# 用法
|
||||
```shell script
|
||||
$ goctl rpc proto -h
|
||||
@@ -126,11 +126,11 @@ OPTIONS:
|
||||
```
|
||||
则服务名称亦为user,而非proto所在文件夹名称了,这里推荐使用这种结构,可以方便在同一个服务名下建立不同类型的服务(api、rpc、mq等),便于代码管理与维护。
|
||||
* --shared 非必填,默认为$dir(xxx.proto)/shared,rpc client逻辑代码存放目录。
|
||||
|
||||
|
||||
> 注意:这里的shared文件夹名称将会是代码中的package名称。
|
||||
|
||||
* --idea 非必填,是否为idea插件中执行,保留字段,终端执行可以忽略
|
||||
|
||||
|
||||
# 开发人员需要做什么
|
||||
|
||||
关注业务代码编写,将重复性、与业务无关的工作交给goctl,生成好rpc服务代码后,开饭人员仅需要修改
|
||||
@@ -146,7 +146,7 @@ OPTIONS:
|
||||
* proto不支持外部依赖包引入,message不支持inline
|
||||
* 目前main文件、shared文件、handler文件会被强制覆盖,而和开发人员手动需要编写的则不会覆盖生成,这一类在代码头部均有
|
||||
```shell script
|
||||
// Code generated by goctl. DO NOT EDIT.
|
||||
// Code generated by goctl. DO NOT EDIT!
|
||||
// Source: xxx.proto
|
||||
```
|
||||
的标识,请注意不要将也写业务性代码写在里面。
|
||||
|
||||
Reference in New Issue
Block a user