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

房产做网站是什么意思推广运营

房产做网站是什么意思,推广运营,网站关键词如何做,设计好 英文网站【Go-Zero】测试API查询信息无法返回数据库信息与api、rpc文件编写规范 大家好 我是寸铁👊 总结了一篇测试API查询信息无法返回数据库信息与api、rpc文件编写规范的文章✨ 喜欢的小伙伴可以点点关注 💝 问题背景 大家好,我是寸铁&#xff01…

【Go-Zero】测试API查询信息无法返回数据库信息与api、rpc文件编写规范

大家好 我是寸铁👊
总结了一篇测试API查询信息无法返回数据库信息与api、rpc文件编写规范的文章✨
喜欢的小伙伴可以点点关注 💝

问题背景

大家好,我是寸铁!今天在今天在编写gozeroapirpc时,出现了个小bug,下面我们一起来看一下这个bug是什么?


今天在编写gozeroapirpc进行测试的时候,想要通过id去调数据库的数据。
测试结果如下:
很明显,并没有成功拿到数据库的数据。

在这里插入图片描述


数据库是有对应数据的。

在这里插入图片描述

排查问题

可以从rpcapi层的代码中打印到数据库的数据,说明编写逻辑是没问题的。

rpc层打印信息如下:
在这里插入图片描述


api层打印信息如下:

在这里插入图片描述

编写apirpc层的逻辑赋值常用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查询数据库的信息,不需要再套多一层。

主要是最开始的protoapi文件的编写问题,不要再套多一层,直接就是返回需要返回的信息即可。


proto文件如下编写为正确规范:

在这里插入图片描述


api文件编写正确规范如下:

在这里插入图片描述

如下编写错误,这里不要再套多一层!!!

在这里插入图片描述


修改完文件后,重新用goctl重新生成apirpc层代码

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.yidumall.com/news/99245.html

相关文章:

  • 网站建设时间规划推广产品最好的方式
  • 怎样做pdf电子书下载网站网站访问量统计工具
  • 建阳网站建设wzjseo陕西网站建设网络公司
  • 珠海市人力资源和社会保障网上服务平台上海谷歌seo推广公司
  • 佛山专业的做网站百度指数官网
  • 城市文化网站开发背景最有效的网络推广方式和策略
  • 宜宾三江新区核酸检测泉州seo网站排名
  • 专业开发网站建设哪家好今日国际重大新闻事件
  • 什么源码做有趣的网站长春seo网站优化
  • 做服装批发在哪个网站好网站品牌推广策略
  • 阜阳做网站的网络公司seo网站推广的主要目的是什么
  • 网站建设注意那湖南网站设计外包费用
  • 广告公司名称大全简单苏州网站优化公司
  • 网站中转页怎么做推广普通话手抄报内容怎么写
  • 手机网站建设介绍新闻发稿推广
  • 福州++网站建设关键词优化怎么优化
  • wordpress 自制联系表单新网站 seo
  • 一个软件的制作过程电脑网络优化软件
  • 免签接口wordpress专业seo服务商
  • 深圳外贸seo网站推广seo广州工作好吗
  • 在线教育网站建设投标书客户管理软件
  • 先做网站还是做APP百度知道官网登录入口
  • 北京做兼职的网站长尾关键词爱站网
  • 做网站用c 还是php万网注册域名
  • 做网站的实践报告推广网站的公司
  • 建一个信息网站多少钱网络黄页推广软件哪个好
  • 银川做网站多少钱学seo推广
  • 深圳网站制作880首页百度
  • 自己做手机网站社交媒体推广
  • 网站客服在线软件百度助手app免费下载