【Go-Zero】Error: user.api 30:2 syntax error: expected ‘)‘ | ‘KEY‘, got ‘IDENT‘报错解决方案

14 篇文章 0 订阅

【Go-Zero】Error: user.api 30:2 syntax error: expected ‘)’ | ‘KEY’, got 'IDENT’报错解决方案

大家好 我是寸铁👊
总结了一篇user.api 30:2 syntax error: expected ‘)’ | ‘KEY’, got 'IDENT’解决方案的文章✨
喜欢的小伙伴可以点点关注 💝

问题背景


大家好,我是寸铁。今天在学习gozero 框架使用jwt 进行鉴权登录时,发现了一个bug , 下面和寸铁一起来瞧瞧这个bug 是怎么样的?


jwt鉴权

要开启jwt 鉴权操作,首先要在api 文件中,在对应的service 上面加上@server 存在字段jwt 。代码如下:

@server(
jwt : Auth
)

接下来就是使用goctl 一键生成代码啦

goctl转换

进入对应的目录,执行如下命令

 goctl api go -api user.api -dir.

顺利的话,就会出现Done 回复。


报错

运行代码,报错如下:

在这里插入图片描述


错误排查

  • 首先,先看一下报错的位置,发现是在jwt : Auth 的第二个字符出错(以空格作为分割符)。

  • 接着,再看一下为什么报错,根据错误的类型提示:报错类型是syntax即 语法错误,确定是语法错误后,试着添加一个) 也是报错(这里添加) 不太符合逻辑)。

  • 最后,可以查一下官方文档,看一下是哪个位置出错,是哪个位置缺少了什么符号,或者大小写之类的。

发现官方文档与我写的jwt是一样的,那错误到底出在哪个地方呢?
不管了,先把官方文档的这行代码复制过去
在这里插入图片描述
再使用goctl 进行转换,运行结果如下:

在这里插入图片描述
成功转换!

回过头来看一下两行代码有什么不同!

在这里插入图片描述

好家伙,语法上的定义还是比较严格的,只差一个: 就无法通过!
这让我想起之前的一些文章bug , 代码差一个符号就会崩掉!

结语

对于一些语法定义比较严格的,在写的时候要尤其关注这个问题,否则可能会出现语法错误,导致代码过不去,有时候通过了,但是只差一个字符,可能程序的结果就会不同,这一点要尤其注意,实在不知道写的对不对,可以复制官方文档的代码,再根据需求修改也是个不错的思路!


看到这里的小伙伴,恭喜你又掌握了一个技能👊
希望大家能取得胜利,坚持就是胜利💪
我是寸铁!我们下期再见💕

往期好文💕

保姆级教程

【保姆级教程】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稳定的有序遍历的方式

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

寸 铁

感谢您的支持!

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

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

打赏作者

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

抵扣说明:

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

余额充值