场景:
一个User的信息包含
{
"id":"用户id",
"name":"用户名(必填)",
"gender":"性别",
"phone":"手机",
"email":"邮箱"
}
后端开发了一个修改user信息的接口
入参校验 name不能为null且不能为空字符串。
操作数据库使用mybatis插件生成插入代码
<if test="name!= null and '' != name">
name = #{name},
</if>
这样开发api看似没有什么问题,实际还略有一些不足之处。
1、前端浏览器调用,提交表单,会把user所有字段都提交过来,后台对user所有字段update数据库,没有问题。
2、如果是其他服务调用,例如一些场景:用户根据手机验证码修改手机号,用户只能修改手机号,服务端传参{"id":"1","phone":"1xxxxxxxx"},来调用修改用户信息api
此时,这个修改user信息的API会报错 用户名不能为空
所以校验参数的时候应该是 允许null 或 (!=null && !="")
做修改业务表单的一些细节
最新推荐文章于 2022-09-09 14:05:22 发布