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

gin参数绑定panic错误分析

gin参数绑定panic错误分析
经过长期实践

func (e *SubscribeApi) FnExample(c *gin.Context) {
	//获取参数并检验
	var req *request.FnReq
	if err := c.ShouldBindQuery(&req); err != nil {
		response.FailWithMsg(c, "Parameter validation error: "+err.Error())
		return
	}
	//...
}

type FnReq struct {
	ShopId    int64  `json:"shop_id" form:"shop_id" uri:"shop_id" binding:"required"`
	Sign      string `json:"sign" form:"sign" uri:"sign" binding:"required"`
	ChargeId  int64  `json:"charge_id" form:"charge_id" uri:"charge_id" binding:"required"`
	PackageId int64  `json:"p" form:"p" uri:"p" binding:"required"`
}

这种写法在传部分参数时不会蹦,
在什么参数都不传的时候会崩, 报panic错误.
那么该如何避免参数绑定时报panic错误呢?

//参数结构体定义不变
//接收参数的变量设置为非指针的普通变量
func (e *SubscribeApi) FnExample(c *gin.Context) {
	//获取参数并检验
	var req request.FnReq
	if err := c.ShouldBindQuery(&req); err != nil {
		response.FailWithMsg(c, "Parameter validation error: "+err.Error())
		return
	}
}

http://www.kler.cn/news/317302.html

相关文章:

  • OpenCV特征检测(5)检测图像中的角点函数cornerMinEigenVal()的使用
  • 【TS】TypeScript基础入门篇以及实践案例
  • 中间件:maxwell、canal
  • Unity 高亮插件HighlightPlus介绍
  • Node.js backend for OpenAI image generation giving error code 400
  • Excel导入时,一个简单的匹配中文外键的方法
  • 防护装备穿戴与否检测系统源码分享
  • Vue.js Emit
  • 多旋翼无人机维修、组装、调试技术详解
  • typora使用和激活
  • 【机器学习】生成对抗网络(GAN)——生成新数据的神经网络
  • 共建智能座舱AI应用生态 夸克合作斑马智行开拓AI搜索新场景
  • 【Linux】SSH:远程连接
  • python 项目中使用Elasticsearch
  • Qt Creator项目模板介绍
  • 使用OVPN导致电脑网速变慢的原因
  • MySQL record 08 part
  • 成功使用DDNS动态域名访问我的群晖NAS(TP-link路由器)
  • Yocto - 使用Yocto开发嵌入式Linux系统_03 基于Poky制作第一个系统
  • vue.js 展示一个树形结构的数据视图,并禁用其中默认选中的节点
  • java并发之并发理论
  • 【自动驾驶】基于车辆几何模型的横向控制算法 | Pure Pursuit 纯跟踪算法详解与编程实现
  • 同一网络下两台电脑IP一样吗?探究局域网内的IP分配机制
  • 释放TK49N65W5 MOSFET的潜力
  • 镭射限高防外破预警装置-线路防外破可视化监控,安全尽在掌握中
  • C++继承(上)
  • 数据结构 - 概述及其术语
  • AI教你学Python 第18天 : 线性数据结构
  • 【LeetCode:1014. 最佳观光组合 + 思维题】
  • 【linux】基础IO(上)