通常,我们在javaee项目中,开发api时,如果没有做好参数校验,前后端工程师在对接的时候,经常会因为传参不合法,报一些奇奇怪怪的异常,这时需要后端工程师打断点去分析异常的原因,浪费大量的时间,而且前后端工程师在出现问题时,在责任上有可能互相推倭。而做好参数校验,能够提高api健壮性和易用性,保证api交互数据的正确性和合法性。减少前端后端工程师在对接api时间上的浪费。提高整个项目开发效率。
那么怎么做好参数校验呢?如果针对每一个参数,都编码去校验,代码量很大,也很繁琐。比如一个入参a,要求不能为空,是数值型的,并且取值范围是0-100。要编码校验的代码如下:
if(a==null ||a==’’){
return 返回不能为空的提示。。。。。
}
If(!a.maches(“^\\d+$”){
Retrun 返回不是数值型的提示。。。。
}
If(Integer.valueOf(a)<0 && Integer.valueOf(a)>100){
Return 返回不在0-100范围的提示
}
一个参数的校验就用了好几行的代码,是不是很麻烦呢?有没有更好的办法?
另外,如果我们用的是springMvc做Controller层框架,如果使用它的参数自动注入,如果传的参数类型不对,出现转换异常时,方法就得不到执行,那个这次请求就得不到正常的响应。
为了解决这些问题,个人参考大牛的代码,整理了个工具类,开源在码云平台。供对做好参数校验提高api健壮性有兴趣的朋友,以参考: