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

三十四、模型绑定与验证

目录

定义:

一、整体代码

结果


定义:

模型绑定意味着将请求数据直接绑定到go的结构体中,然后进行输入或输出的验证

一、整体代码

// 请求
type HelloReq struct {Name string `json:"name" binding:"required"`
}// 返回
type HelloRsp struct {Msg string `json:"msg" binding:"required"`
}func (c *CmsApp) Hello(ctx *gin.Context) {//定义req为HelloReq结构体var req HelloReq//请求绑定req,当请求体中不包含name则会报错并返回if err := ctx.ShouldBindJSON(&req); err != nil {ctx.JSON(http.StatusBadRequest, gin.H{"err": err.Error()})return}//返回rsp,返回接收到的数据体ctx.JSON(http.StatusOK, gin.H{"code": http.StatusOK,"msg":  "hello","data": &HelloRsp{Msg: fmt.Sprintf("name is %s", req.Name),},})
}
结果
{"code": 200,"data": {"msg": "name is luckey"},"msg": "hello"
}

故意输错name变为names

则会报错

{"err": "Key: 'HelloReq.Name' Error:Field validation for 'Name' failed on the 'required' tag"
}


http://www.mrgr.cn/news/22937.html

相关文章:

  • RedisTemplate操作Redis
  • C++复习day05
  • Python列表浅拷贝的陷阱与破解之道
  • 29个横幅广告及详细点评,帮您优化广告效果
  • 苹果账号登录后端验证两种方式 python2
  • Qt工程使用MQTT-C库与mqtt服务器数据通信
  • 【C++11 ——— 右值引用和移动语义】
  • 久久派搭建风电系统网站(基于mariadb数据库)
  • PVE动态核显直通
  • 一个数组向左移动i位(学会分析问题,找出规律,不要小看任何一个小程序;小程序都是实现大的功能的基础--体现问题分解的思想)
  • Python数据分析高频面试题及答案
  • 使用gdb跟踪调试linux内核
  • 仕考网:公务员国考考什么?
  • 三维点云骨架提取(以树木为例 python 代码)
  • 月考结束老师如何发布成绩查询?
  • 时间戳和日期相互转换+检验日期合法性功能C语言
  • 推荐4款高效的录屏工具,教你如何快速录屏。
  • 风趣图解LLMs RAG的15种设计模式-第三课
  • gpt4最新保姆级教程
  • 一些面试和找工作的技巧-新资要的低并不会给你加分薪资要的高不会成为公司拒绝你的核心理由