如何优雅的进行入参数据校验?
  • 在哪些场景下,你会进行入参数据校验的呢?
  • 如何优雅的进行入参数据校验?



对于应用程序入参的校验,可以说在任何时候都很重要,既可以保证应用程序的数据安全,又可以提高用户体验,防止不必要的无响应情况产生,那么。。。

在哪些场景下,你会进行入参数据校验的呢?

通常情况下,对于管理端项目,往往倾向于前端页面校验+后端入参数据检验双重验证,如果是内部系统的话那么没有外部人员访问,只进行前端页面校验也是可以的。

对于API接口项目,不管调用API接口的客户端是否进行入参数据校验,后端服务项目在接收到入参时都需要进行参数校验,以保证入参的合法性。

总的来说,工期允许的话,尽可能充分的入参校验可以保证您的系统稳定运行,同时保证程序的健壮性和应对非正常请求时的稳定性。

如何优雅的进行入参数据校验?

说到入参校验,最简单最传统最一目了然的方式可以说就是if-else了,就像这样

如何优雅的进行入参数据校验?_参数校验


不同类型的参数判 NULL 采用不同的工具类方法,这点需要注意。

但是当入参比较多的时候,如果还是采用if-else的方式校验参数,那么代码量和可阅读性就会变得很差。

那么当一个方法接受很多必传参数时,那么我们可以通过注解的形式(比如 @RequestParam)来对入参进行校验,从而简化代码,提高代码的可读性

如何优雅的进行入参数据校验?_Spring注解_02


当然除了@RequestParam以外, Spring-web 还提供了很多入参校验的注解,比如@NotEmpty @NotBlank @NotNull 等,我们在参数校验时可以充分的应用Spring 注解,从而来提高开发效率

如何优雅的进行入参数据校验?_Spring注解_03


或者也可以通过拦截器的方式来对公共参数进行统一校验,这样也可以减少业务逻辑代码的耦合性和代码量。自定义注解的方式也可以考虑,通过对不同形式的入参校验,返回不同的提示信息方便快速定位问题,这些都是可以的。