背景

关于web框架 自动绑定和校验 表单参数,在之前的几家公司内部自研web框架都有见过,包括Java和Go的自研框架。

最近使用gin搭建广告服务,也涉及了相关知识点,这里记录一下绑定原理。

Go框架中,主要是依靠解析结构体中的tag进行匹配。

其中主要的难点是:

  • 映射难点

1.Go是静态语言,在判断字段类型时,会有很多分支进行判断。

2.对结构体的指针和非指针赋值逻辑不同。

3.POST请求发送的body如果是嵌套的json内容,映射到对应的嵌套结构中需要使用递归算法,实现一个生产级的夹杂着业务的递归算法还是比较繁杂的。

  • 校验难点 1.字段有无的校验 2.嵌套字段的校验

其他

PS.本文均未谈及性能问题

参考

1.Gin框架系列04:趣谈参数绑定与校验

原创文章转载请注明出处: 回顾我见过的Web框架中的参数绑定与校验-TODO