gin入参多次获取
在middleware层不要用ShouldBind函数绑定body中的参数,因为ShouldBind执行完后,request中body就空了,业务层就拿不到body了。用下面的代码即可,先拿后放。
userIdReq := new(UserIdReq) var err error if c.Request.Method == "GET" { err = c.ShouldBindQuery(userIdReq) } else if (c.Request.Method == "POST" || c.Request.Method == "DELETE") && strings.Contains(c.ContentType(), "application/json") { body, _ := c.GetRawData() c.Request.Body = io.NopCloser(bytes.NewBuffer(body)) err = json.Unmarshal(body, userIdReq) } else { c.Abort() return }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
2020-07-27 go基础第一篇:并发之channel