中文简体 | English
一款支持go-zero api语言结构语法高亮、检测以及api、rpc、model快捷生成的插件工具。
不低于193.0(2019.3)
在github的release中找到最新的zip包,下载本地安装即可。(无需解压)
在plugin商店中,搜索Goctl
安装即可(目前商店中已通过的版本比较低。)
在工程区域目标文件夹右键 -> New -> New Api File -> Empty File/Api Template
,如图:
在工程区目标文件夹右键 -> New -> New Proto File -> Empty File/Proto Template
,如图:
在目标文件夹右键 -> New -> Go Zero -> Api Greet Service/Rpc Greet Service
API Code Generation
和 API Quick Code Generation
的区别是:
API Quick Code Generation
中 goctl
的相关指令参数均使用指定值,其代码生成指令内容如下:
$ goctl api go --api=${API 文件路径} --style=gozero --home="~/.goctl" --dir=${API 文件所在文件夹}
API Code Generation
会打开弹窗让使用者填写 --style
,-- dir
,--home
等信息
ZRPC Code Generation
和 ZRPC Quick Code Generation
的区别是:
ZRPC Quick Code Generation
中 goctl
的相关指令参数均使用指定值,其代码生成指令内容如下:
$ goctl rpc protoc ${proto 文件路径} --style=gozero --home="~/.goctl" --go_out=${API 文件所在文件夹} --grpc-go_out=${API 文件所在文件夹} --zrpc_out=${API 文件所在文件夹}
ZRPC Code Generation
会打开弹窗让使用者填写 --style
,-- dir
,--home
,proto_path
(如果有 import 其他 proto 文件) 等信息
Model 代码生成默认都是带缓存的。
Model Code Generation
和 Model Quick Code Generation
的区别是:
Model Quick Code Generation
中 goctl
的相关指令参数均使用指定值,其代码生成指令内容如下:
$ goctl model mysql ddl --src=${sql 文件路径} --dir=${sql 文件所在文件夹} --style=gozero -c --home="~/.goctl"
Model Code Generation
会打开弹窗让使用者填写 --style
,-- dir
,--home
,--cache
等信息
Live Template可以加快我们对api文件的编写,比如我们在go文件中输入main
关键字根据tip回车后会插入一段模板代码
func main(){
}
或者说看到下图你会更加熟悉,曾几何时你还在这里定义过template
下面就进入今天api语法中的模板使用说明吧,我们先来看看service模板的效果
模板关键字 | psiTree生效区域 | 描述 | |
---|---|---|---|
@doc | ApiService | doc注释模板 | |
doc | ApiService | doc注释模板 | |
struct | Struct | struct声明模板 | |
info | ApiFile | info block模板 | |
type | ApiFile | type group模板 | |
handler | ApiService | handler文件名模板 | |
get | ApiService | get方法路由模板 | |
head | ApiService | head方法路由模板 | |
post | ApiService | post方法路由模板 | |
put | ApiService | put方法路由模板 | |
delete | ApiService | delete方法路由模板 | |
connect | ApiService | connect方法路由模板 | |
options | ApiService | options方法路由模板 | |
trace | ApiService | trace方法路由模板 | |
service | ApiFile | service服务block模板 | |
json | Tag | Tag literal | tag模板 |
xml | Tag | Tag literal | tag模板 |
path | Tag | Tag literal | tag模板 |
form | Tag | Tag literal | tag模板 |