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

在 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.lryc.cn/news/241749.html

相关文章:

  • Handler系列-sendMessage和post的区别
  • java中 自动装箱与拆箱,基本数据类型,java堆与栈,面向对象与面向过程
  • C语言第二十八弹--输入一个非负整数,返回组成它的数字之和
  • redis---主从复制及哨兵模式(高可用)
  • 【不同请求方式在springboot中对应的注解】
  • 前端入门(三)Vue生命周期、组件技术、事件总线、
  • 消息推送到微信,快速实现WxPusher
  • 【Spring篇】JDK动态代理
  • 【从零开始实现意图识别】中文对话意图识别详解
  • 腾讯云点播小程序端上传 SDK
  • 【MATLAB源码-第88期】基于matlab的灰狼优化算法(GWO)的栅格路径规划,输出做短路径图和适应度曲线
  • electron使用electron-builder macOS windows 打包 签名 更新 上架
  • autojs项目搭建和入门实践
  • uni-app 跨端开发注意事项
  • 在 vscode 中的json文件写注释,不报错的解决办法
  • 基于uniapp的 电子书小程序——需求整理
  • Hutool HttpRequest 首次请求正常 第二次被系统拦截
  • github国内访问小解(windows)
  • NX二次开发UF_CSYS_set_wcs_display 函数介绍
  • DNS 区域传输 (AXFR)
  • Ubuntu 安装 JMeter:轻松上手
  • 在工业生产环境下,服务器没有互联网,如何通过代理自己的电脑上互联网?
  • 【brpc学习实践六】backup request场景案例
  • el-table导出为excel表格
  • CVE-2022-0543(Redis 沙盒逃逸漏洞)
  • 查swap内存使用
  • Element UI的Tabs 标签页位置导航栏去除线条
  • 【Python 训练营】N_1 验证密码
  • Pinia 和 Vuex 的对比,storeToRefs 的原理
  • Mycat分库分表的操作(配置)