【Go-Zero】关于使用goctl转换api生成相关代码的目录结构位置的开发规范及注意事项

14 篇文章 0 订阅
本文讲述了在使用goctl转换API时遇到的目录结构问题,介绍了如何正确设置`api-dir`选项以确保代码按预期生成在正确层级,以及开发规范和注意事项。
摘要由CSDN通过智能技术生成

【Go-Zero】关于使用goctl转换api生成相关代码的目录结构位置的开发规范及注意事项

大家好 我是寸铁👊
总结了一篇【Go-Zero】关于使用goctl转换api生成相关代码的目录结构位置的开发规范及注意事项的文章✨
喜欢的小伙伴可以点点关注 💝

问题背景

大家好,我是寸铁!今天在使用goctl 一键转换生成api层代码时,出现了个小bug,下面我们一起来看一下这个bug是什么?


使用如下命令生成api

goctl api go -api main.api -dir. -style=goZero

发现生成的目录结构的位置不对劲!

错误的层级结构:

desc怎么包含了生成的etcinternal目录
desc正确应该只包含shop这一层,与生成的其他目录并列!

在这里插入图片描述


正确的层级目录如下:

desc与生成的etcinternal目录并列

在这里插入图片描述


排查分析

那么为什么,会出现这个问题呢?
这就需要从命令开始入手研究!

笔者一开始使用如下命令生成api

goctl api go -api main.api -dir. -style=goZero

命令解读

这里需要对这段代码进行解读

goctl api go -api main.api
这段代码表示使用goctlmain.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解决方案


Go面试向

【Go面试向】defer与time.sleep初探

【Go面试向】defer与return的执行顺序初探

【Go面试向】Go程序的执行顺序

【Go面试向】rune和byte类型的认识与使用

【Go面试向】实现map稳定的有序遍历的方式

  • 15
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寸 铁

感谢您的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值