出现场景:
某日我看着GET请求的参数逐渐变多,想个改成POST请求得了,这样body传参美观又方便,于是接口从GET变成了POST,然后查询参数就莫名其妙的就全部失效了,接口也没有报错,就参数失效了,查询了全部数据。
发现问题过程:
自己捣鼓了半天没发现异常,然后删除了一些前端查询参数,结果查询条件突然生效了,那导致查询生效的参数就一定是在自己刚刚删除的参数里面,通过对比发现后端定义的时间类型是Date的参数被前端传了个数组类型,主要它不报错呀,直接使全部查询参数失效了,debug看传进去的body对应是实体里面只有Integer类型的值还在,其他全为null了,真想骂人啊,要是其他类型传错了参数格式,它是会报错了,可是上述的场景就是不会。
教训:
尽量别使用Date来接收参数,容易踩坑,当出现其他查询参数失效的时候,检查下是不是Date对应的传参被传了个数组进来。