前景提要
gin 获取表单参数的方法是 c.PostForm("name") ,当 name 这个参数不存在时,会默认返回空字符串 ""
然后问题来了,如果用户 POST 请求 api,在 form 里传入了 name= 这样的数据的话,通过 c.PostForm("name") 也将获取到空字符串 "" ,这就导致程序根本没法区分这个空字符串是因为用户没有指定 name 这个参数,还是将 name 这个参数设定成了空字符串
也许会有人觉得这两者没有区别,但是考虑下面这个 API 的话,两者会截然不同:
请求一个 API,可以更新数据库中指定的一些字段,没有指定的字段则不做任何更新。 在这个 API 中, 用户在 post form 中 指定了 name= 的话意味着将 name 字段清空,设置成 "" , 而不指定 name 参数的话则意味着不对 name 字段做操作