当前位置: 首页 > news >正文

成都建工路桥建设有限公司网站html5 素材网站

成都建工路桥建设有限公司网站,html5 素材网站,良精网站管理系统,做个视频网站【Go-Zero】测试API查询信息无法返回数据库信息与api、rpc文件编写规范 大家好 我是寸铁#x1f44a; 总结了一篇测试API查询信息无法返回数据库信息与api、rpc文件编写规范的文章✨ 喜欢的小伙伴可以点点关注 #x1f49d; 问题背景 大家好#xff0c;我是寸铁#xff01…【Go-Zero】测试API查询信息无法返回数据库信息与api、rpc文件编写规范 大家好 我是寸铁 总结了一篇测试API查询信息无法返回数据库信息与api、rpc文件编写规范的文章✨ 喜欢的小伙伴可以点点关注 问题背景 大家好我是寸铁今天在今天在编写gozero的api和rpc时出现了个小bug下面我们一起来看一下这个bug是什么 今天在编写gozero的api和rpc进行测试的时候想要通过id去调数据库的数据。 测试结果如下 很明显并没有成功拿到数据库的数据。 数据库是有对应数据的。 排查问题 可以从rpc、api层的代码中打印到数据库的数据说明编写逻辑是没问题的。 rpc层打印信息如下 api层打印信息如下 编写api、rpc层的逻辑赋值常用copier.Copy(resp , res)函数。 但是在这一处copier.Copy(resp , res)时候发现resp打印内容是db设置的默认值这就说明调用这个函数时无法成功赋值 那为什么赋值不成功呢 我们先来看一下函数的底层结构是怎么样的 进入函数的表层发现主要是传入两个参数。 一个是要目标数据(你想赋值的位置)一个是数据来源(你要赋值的数据)这两个都是接口类型说明可以传入任意类型的参数。 再进入copier函数的底层封装实现看看 本质是基于反射实现的对数据的各种类型和数值进行处理。 由于篇幅过长感兴趣的同学可以去阅读源码 好到了这里我们需要思考一个问题很明显是调用Copy函数赋值不成功那么这里就需要对传入的参数进行思考。 到底是参数传反了还是说传入的参数不对还是说传入的参数结构有要求 回头看看这个函数逐个对猜想进行排查。 排查如下 第一种位置不对这里的res是从数据库查到的数据再把他赋值给resp响应这是没问题的 第二种res是我从数据库查到的数据resp是赋值的响应信息这两部分都是结构体并且语法也通过了这也是没问题的。 第三种传入的参数的结构对不上或者说错乱。 在排查了前两种可能性后只有第三种的概率比较大。 再使用一下参数发现还能够通过res点出Goods这说明之前编写的rpc层的proto文件和api层的api文件的编写结构不一致或者说嵌 套了导致调用的混乱。 那就需要重新回到一开始的rpc层的proto文件和api层的api文件编写上了 解决问题 这里是根据id查询数据库的信息不需要再套多一层。 主要是最开始的proto、api文件的编写问题,不要再套多一层,直接就是返回需要返回的信息即可。 proto文件如下编写为正确规范 api文件编写正确规范如下 如下编写错误这里不要再套多一层 修改完文件后重新用goctl重新生成api、rpc层代码 resp的内容如下 res的内容如下 重新测试 重启服务后测试结果如下 这样就成功拿到信息啦 总结回顾 如果只是返回根据id查询单个的信息不要套一层结构体直接把商品的信息返回出去不要再套一层否则在后面的copier函数很混乱导致结构体赋值失败。 如果要返回查询的信息的列表时可以选择嵌套多一层。 注意编写文件的规范取决于你的需求和生产环境使用时可以适当参考本文编写规范。 往期好文 保姆级教程 【保姆级教程】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稳定的有序遍历的方式
http://www.pierceye.com/news/193563/

相关文章:

  • 网站备案号码舟山高端网站建设
  • 买奢侈品代工厂做的产品的网站名建立网站 英语怎么说
  • 网站访问者qq计算机等级培训机构
  • 可以让外国人做问卷调查的网站济南优化seo网站建设公司
  • odoo做网站创建企业需要什么条件
  • 山西省旅游网站建设分析wordpress 个人介绍
  • 山东高级网站建设赚钱
  • 做网站大概要多少钱新建网站的外链多久生效
  • 天河区建设网站品牌网站建设小8蝌蚪
  • 深圳市企业网站seo点击软件小程序游戏开发公司
  • 南宁企业网站设计公怎么进wordpress
  • 商务网站建设一万字做视频剪辑接私活的网站
  • 网站开发绪论phpstudy建wordpress
  • 网站建设的基本流程有哪些wordpress产品页布局
  • 写过太原的网站免费漫画大全免费版
  • 毕业设计做系统好还是网站好冠县网站建设公司
  • 网站管理制度建设开发一个网站需要多少时间
  • 高校网站建设说明书微信公众号涨粉 网站
  • 深圳网站建设公司哪里好中国施工企业管理协会官网
  • 网站自动抢注步步高学习机进网站怎么做
  • 带域名的网站打不开深圳网站优化多少钱
  • 中国空间站科幻作文1000字网站建设从化
  • 做网站买一个域名就够了吗cn域名知名网站
  • 社科联网站建设个人网页英文
  • 做房产推广那个网站好网站改版建设原则
  • 网站建设 语言成都app
  • 免费建站的手机app专业做网站设计公司价格
  • 江苏宜兴做网站的电话seo基础培训
  • 企业手机端网站模板下载济南公司建站模板
  • 一般公司做网站多少钱南昌市房产网