【Go-Zero】关于使用goctl转换api生成相关代码的目录结构位置的开发规范及注意事项
大家好 我是寸铁👊
总结了一篇【Go-Zero】关于使用goctl转换api生成相关代码的目录结构位置的开发规范及注意事项的文章✨
喜欢的小伙伴可以点点关注 💝
问题背景
大家好,我是寸铁!今天在使用goctl
一键转换生成api
层代码时,出现了个小bug
,下面我们一起来看一下这个bug
是什么?
使用如下命令生成api
层
goctl api go -api main.api -dir. -style=goZero
发现生成的目录结构的位置不对劲!
错误的层级结构:
desc
怎么包含了生成的etc
和internal
目录
desc
正确应该只包含shop
这一层,与生成的其他目录并列!
正确的层级目录如下:
desc
与生成的etc
和internal
目录并列
排查分析
那么为什么,会出现这个问题呢?
这就需要从命令
开始入手研究!
笔者一开始使用如下命令生成api
层
goctl api go -api main.api -dir. -style=goZero
命令解读
这里需要对这段代码进行解读
goctl api go -api main.api
这段代码表示使用goctl
对main.api
文件生成api
层相关的代码
-dir.
表示在当前文件夹下生成
-style=goZero
生成相关文件的命名结构为goZero
(驼峰
)模式
定位错误
好,看到这里,问题的答案就出来了,笔者生成错误的目录结构是在main.api
文件的当前目录(desc
)下生成,所以,生成相关的文件夹都放在desc
文件夹下面了!
正确生成
有同学问,那我需要怎么做?
很简单,在main.api
文件的位置desc
的上层文件夹下生成不就是与desc
文件夹并列了!
所以,应该使用如下命令生成api
层
goctl api go -api main.api -dir ../ --style=goZero
../
表示当前目录的上一级目录
生成正确的层级目录如下:
规范总结
在使用goctl
进行开发api
层的过程中,注意以下3点:
- 要仔细观察
api
文件的所在位置,清楚要生成的目录位置。 - 记得使用正确的命令去生成,如
.
表示当前目录,..
表示上一级目录。
.
表示api
文件的当前目录下生成
goctl api go -api main.api -dir. -style=goZero
..
表示api
文件的上一级目录下生成
goctl api go -api main.api -dir ../ --style=goZero
注意:使用命令时,
main.api
替换为你命名的api
文件
- 如果公司有开发文档,要根据公司的开发文档规范去生成,没有的话,自己要清楚
api
文件的位置,生成正确的文件层级结构。
看到这里的小伙伴,恭喜你又掌握了一个技能👊
希望大家能取得胜利,坚持就是胜利💪
我是寸铁!我们下期再见💕
往期好文💕
保姆级教程
【保姆级教程】Windows11下go-zero的etcd安装与初步使用
【保姆级教程】Windows11安装go-zero代码生成工具goctl、protoc、go-zero
【Go-Zero】手把手带你在goland中创建api文件并设置高亮
报错解决
【Go-Zero】Error: user.api 27:9 syntax error: expected ‘:‘ | ‘IDENT‘ | ‘INT‘, got ‘(‘ 报错解决方案及api路由注意事项
【Go-Zero】Error: only one service expected goctl一键转换生成rpc服务错误解决方案
【Go-Zero】【error】 failed to initialize database, got error Error 1045 (28000):报错解决方案
【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案
【Go-Zero】type mismatch for field “Auth.AccessSecret“, expect “string“, actual “number“报错解决方案
【Go-Zero】Error: user.api 30:2 syntax error: expected ‘)‘ | ‘KEY‘, got ‘IDENT‘报错解决方案
【Go-Zero】Windows启动rpc服务报错panic:context deadline exceeded解决方案