首页 > 其他分享 >gin 自定义validate错误消息

gin 自定义validate错误消息

时间:2024-08-19 16:24:03浏览次数:6  
标签:errMap return 自定义 errTagText Field Tag fieldError gin validate

以json的形式返回error,同时支持自定义错误消息msg。

func GetError(err error, r interface{}) map[string]interface{} {
	errs := err.(validator.ValidationErrors)
	s := reflect.TypeOf(r)
	for _, fieldError := range errs {
		filed, _ := s.FieldByName(fieldError.Field())
		errTag := fieldError.Tag() + "_msg"
		// 获取对应binding得错误消息
		errTagText := filed.Tag.Get(errTag)
		// 获取统一错误消息
		errText := filed.Tag.Get("msg")
		errMap := map[string]interface{}{}

		if errTagText != "" {
			errMap[fieldError.Field()] = errTagText
			return errMap
		}
		if errText != "" {
			errMap[fieldError.Field()] = errText
			return errMap
		}

		errMap[fieldError.Field()] = fieldError.Tag()
		return errMap
	}
	return nil
}

标签:errMap,return,自定义,errTagText,Field,Tag,fieldError,gin,validate
From: https://blog.csdn.net/zhtsuc/article/details/141328631

相关文章

  • Visual Studio 2013 自定义动态库dll文件lib存放路径
    前言全局说明VisualStudio2013自定义lib存放路径一、说明环境:Windows7旗舰版VisualStudio2013二、设置说明在一个功能比较全的项目中,有可能会引入第三方库来完成某些功能,为了让目录结构、文件,清晰,会将引入的dll文件,放置到一个独立目录里。这样方便管理,也便......
  • WindowsServer系统下nginx代理问题
    部署vue打包后的dist文件夹后,重启nginx发现没生效,操作如下:1.停止redis,删除浏览器缓存并用无痕模式访问发现依然不生效,试着各种办法重新导入数据库数据也不行,nginx.exe-sstop依然能访问2.搜索发现可能是WindowsServer系统的问题,于是执行命令nginx-squit退出nginx......
  • Vue自定义轮播图
    目录前言代码效果演示详细代码实现思路轮播图实现代码组件使用代码前言    汇总一个最近写出来的效果,最新的设计稿里面要求实现一个轮播图,原本使用的Element-UI提供的轮播图不是很适配,所以选择自定义一个使用。文中附带代码实际效果演示视频。 ......
  • sonarqube添加一条自定义规则,扫描文件中出现的username和password,方法二,使用implement
    特别指出: 所以,sonarqube默认过滤掉了resources下的文件;以下代码可以扫出yml/xml/properties等文件中的敏感字符,当然是放在src/main下的,不是resources;下载源码与使用详情参考:Sonarqube自定义规则,部署SonarSource/sonar-java源码中示例规则:docs/java-custom-rules-exam......
  • 部署Nginx负载均衡+动静分离的群集
    目录一、Nginx应用二、正向代理与反向代理1.1正向代理1.2反向代理三、负载均衡1.轮询(RoundRobin)2.最小连接数3.IP  hash:4.加权轮询5.最少事件算法6.一致性hash一、Nginx应用Nginx是一款非常优秀的HTTP服务器软件支持高达50000个并发连接数的响应拥有强......
  • AtCoder Beginner Contest 367
    题目链接:AtCoderBeginnerContest367总结:发挥很一般,A一直wa。开场有点事,导致D也没debug出来。A.ShoutEverydaytag:模拟Solution:注意\(B>C\)与\(B<C\)的不同情况即可。voidsolve(){  inta,b,c;  cin>>a>>b>>c;  if(c>b){    if(......
  • NGINX 封禁 IP(IP 段)访问方法:修改配置文件或 .htaccess 文件
    方法一:修改Nginx配置文件nginx.confNginx配置访问IP可以修改 nginx.conf 文件,只需要在 server 中添加 allow 和 deny 的IP即可,如下:server{listen80;server_namelocalhost;allowall;deny123.123.123.123;error_page500......
  • 书生大模型实战营3期 - 进阶岛 - 2 - Lagent 自定义你的 Agent 智能体
    文章目录闯关任务完成结果闯关任务任务描述:Lagent自定义你的Agent智能体任务文档:Lagent自定义你的Agent智能体完成结果使用Lagent自定义一个智能体,并使用LagentWebDemo成功部署与调用,记录复现过程并截图。环境准备/安装:#创建环境condacreate-n......
  • sonarqube添加一条自定义规则,扫描文件中出现的username和password,方法一
    下载源码与使用详情参考:Sonarqube自定义规则,部署SonarSource/sonar-java源码中示例规则:docs/java-custom-rules-example-yxchun-博客园(cnblogs.com)假设你已经有了sonarqube-java源码,并且已经把sonarqube部署到电脑上1、在check里面创建文件 MyTxtBlockCheck.javap......
  • Linux安装nginx1.26.2
    第一步:去官网下载指定的版本http://nginx.org/en/download.html第二步:解压压缩包:tar-zxvf  ......tar.gz第三步:编译nginx ./configure如果出现报错:./configure:error:theHTTPgzipmodulerequiresthezliblibrary.Youcaneitherdisablethemodulebyusing--......