在 go 的项目中使用验证器

1:使用validate 包验证:

        安装包: go get github.com/go-playground/validator/v10

package controllerimport ("fmt""github.com/gin-gonic/gin""github.com/go-playground/validator/v10""net/http"
)// 使用 type OrderController struct  来区别同一个包下面出现相同的func 函数
type OrderController struct {
}//获取搜索的参数type Order struct {Id      int    `json:"id" validate:"required"` // 使用validate 的包进行验证Name    string `json:"name" validate:"required"`OrderId int    `json:"orderId" validate:"required"`Email   string `json:"email" validate:"email"`
}type Search struct {Cid  int    `json:"cid"`Name string `json:"name"`
}func (o OrderController) GetList(c *gin.Context) {v := validator.New()// 从请求中获取JSON数据并绑定到Order结构体var order Orderif err := c.ShouldBindJSON(&order); err != nil { //将参数进行验证 并给order 结构体c.JSON(http.StatusBadRequest, gin.H{"jsonerr": err.Error()})return}// 使用validator验证Order结构体数据err := v.Struct(order)if err != nil {c.JSON(http.StatusBadRequest, gin.H{"vlidateerror": err.Error()})return}// 打印接收到的参数,这里可以根据实际需求进行后续处理,如查询数据库等。fmt.Printf("Received order: %+v", order)c.JSON(http.StatusOK, gin.H{"message": "Successfully received order"})}

validate 的值请参考: 参考的值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/158292.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java中基本数据类型的最大值最小值理解

文章目录 概要主要内容 概要 今天在复习java的Java基础常见面试题时对java中基本数据类型的上下限有了一些思考,接下来我会结合自身的理解进行讲述 主要内容 Java 中有 8 种基本数据类型,分别为:6 种数字类型: 4 种整数型&…

掌握Java核心技术的经典例题解析!

问题:请解释一下基于UDP协议的网络编程是什么? 答案:基于UDP协议的网络编程是一种在网络中使用UDP协议进行数据通信的编程方法。UDP(User Datagram Protocol)是一种简单的传输层协议,与TCP协议相比&#x…

unity android 打包问题解决

gradle编译问题 打开 gradle所在路径,如:C:\Program Files\Unity 2020.3.30f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\GradleTemplates, 编辑baseProjectTemplate.gradle,替换成阿里云的源 // GENERATED BY UNITY.…

Java运算符和表达式

在Java编程中,运算符是用于执行各种操作的符号,而表达式是由运算符、操作数和变量组成的代码片段。Java提供了一系列的运算符,用于执行算术、逻辑、赋值和其他各种操作。 一、算术运算符 Java提供了一组算术运算符,用于执行基本…

使用 Filebeat+Easysearch+Console 打造日志管理平台

近年来,日志管理平台越来越流行。使用日志管理平台可以实时地、统一地、方便地管理和查看日志,挖掘日志数据价值,驱动运维、运营,提升服务管理效率。 方案架构 Beats 是轻量级采集器,包括 Filebeat、Metricbeat 等。E…

基于vue的three.js学习

vue安装three.js,并创建第一个入门场景 安装three.js npm install --save three引入three.js import * as THREE from threethree.js结构 three.js坐标 创建一个场景 scene场景,camera相机,renderer渲染器 创建一个场景 this.scene new T…

这7款神仙软件,程序员必备!

如果你是程序员、开发者、网络运维等 IT 从业者日常工作中大家肯定会用到很多网站,今天给大家带来7款压箱底的神仙软件,希望可以帮助有需要的码农朋友实现更高效地办公。 一、Everything 适用:本地文件搜索神器 就是为了极速检索而生,其实…

yapi==使用依赖包里的类作为入参/返回值导出后没有备注

比如模块A中有个MyDemoEntity类&#xff0c;在B中以依赖的形式引入了A&#xff0c;并在B的接口中以MyDemoEntity作为返回值&#xff0c;导出到YAPI发现MyDemoEntity的备注没了。 解决&#xff1a; 将A的内容安装到本地MAVEN仓库&#xff0c;并且需要将源码也一起安装 <buil…

探索锦食送如何通过API集成无代码开发技术提高电商平台和营销系统效率

探索锦食送无代码开发集成技术 随着电子商务和营销系统的快速发展&#xff0c;企业不断寻求更高效和灵活的管理方式。锦食送&#xff0c;作为高端餐饮外卖服务的领先者&#xff0c;通过无代码开发的API集成技术&#xff0c;实现了电商平台和营销系统的高效管理。这种创新的连接…

# 学习 Prolog 和 离散逻辑的16个等价公式:一趟有趣的逻辑之旅

Prolog 的语法很奇怪,需要一些时间来适应,所以我花了点时间,想用Prolot来学习和验证离散逻辑的16组等价公式。 1. 双重否定律 (Double Negation Law) A ⇔A 首先&#xff0c;我们来看看双重否定律。在 Prolog 中&#xff0c;我们可以这样验证它&#xff1a; fun1(A,Z):-memb…

干货分享:本地生活服务商入驻申请需要哪些条件?附更快捷的方法!

在数字化时代&#xff0c;本地服务市场已经成为各大平台争夺的重要阵地。抖音不仅在短视频市场占有一席之地&#xff0c;同时也在如火如荼的开发着本地服务市场&#xff0c;相继支付宝、视频号也推出了本地生活服务商模式。本文将介绍抖音本地生活服务商的申请条件&#xff0c;…

dedecms标签

【Arclist 标记】这个标记是DedeCms最常用的一个标记&#xff0c;也叫自由列表标记&#xff0c;其中 hotart、coolart、likeart、artlist、imglist、imginfolist、specart、autolist 这些标记都是由这个标记所定义的不同属性延伸出来的别名标记。功能说明&#xff1a;获取指定的…

WIN10 WIN11 12代 13代 大小核;性能核;电源选项;P-core,E-core;

WIN10 WIN11 12代 13代 大小核&#xff1b;性能核&#xff1b;电源选项&#xff1b;P-core,E-core&#xff1b; WIN10 WIN11 12代 13代 大小核;性能核&#xff1b;电源选项&#xff1b;P-core,E-core;说明&#xff1a;方法&#xff1a;1。右键开始菜单&#xff0c;选择“Window…

时序预测 | MATLAB实现基于ELM-AdaBoost极限学习机结合AdaBoost时间序列预测

时序预测 | MATLAB实现基于ELM-AdaBoost极限学习机结合AdaBoost时间序列预测 目录 时序预测 | MATLAB实现基于ELM-AdaBoost极限学习机结合AdaBoost时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.Matlab实现ELM-Adaboost时间序列预测&#xff0c;极…

Django 集成 Celery 实现高效的异步任务处理

概要 在复杂的 Web 应用中&#xff0c;处理长时间运行的任务或定期任务是一项挑战。Django 作为一个强大的 Python Web 框架&#xff0c;可以通过集成 Celery 这一异步任务队列来优化这些任务的处理。Celery 不仅能提高应用性能&#xff0c;还能改善用户体验。本文将深入探讨如…

LeetCode——移除元素

问题描述 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出…

理解系统内核linux phy驱动

PHY设备驱动是基于device、driver、bus的连接方式,驱动涉及如下几个重要部分&#xff1a; 总线 - sturct mii_bus (mii stand for media independent interface) 设备 - struct phy_device 驱动 - struct phy_driver。PHY驱动函数驱动功能&#xff1a; 函数名称 功能描述 s…

arcgis中投影文件(.prj)和地理转换文件(.gtf)存储路径

1、投影文件&#xff08;自定义的.prj&#xff09;的存储路径 C:\Users\14635\AppData\Roaming\ESRI\Desktop10.5\ArcMap\Coordinate Systems 2、地理转换文件&#xff08;.gtf&#xff09;--自定义 C:\Users\14635\AppData\Roaming\ESRI\Desktop10.5\ArcToolbox\CustomTransfo…

Android Studio App开发实战项目之实现淘宝电商App首页界面(附源码,可用于大作业参考)

需要源码和图片集请点赞关注收藏后评论区留言或者私信~~~ 各家电商的App首页都是动感十足&#xff0c;页面元素丰富令人眼花缭乱&#xff0c;其中运用了Android的多种组合控件&#xff0c;可以说是App界面开发的集大成之作&#xff0c;下面我们也动手实现一个。 一、需求描述 …