通常,我们在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健壮性有兴趣的朋友,以参考:

https://gitee.com/a114533627/param-validate

post请求参数校验工具param-validate相关推荐

  1. Python参数校验工具:validate.py

    一直都在找一个比较好用的参数校验工具包(Python),这次终于找到了就做个记录. 包名:validate.py 安装方式:(pip已收入, 当前最新版本是1.3.0) pip install val ...

  2. struts2教程(5)--请求参数校验

    一.请求参数校验介绍 校验的分类 :客户端数据校验 和服务器端数据校验 客户端数据校验 ,通过JavaScript完成校验 (改善用户体验,使用户减少出错 ) 服务器数据校验 ,使用框架内置校验功能( ...

  3. Spring Boot 2.x基础教程:JSR-303实现请求参数校验

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 翟永超 来源 | didispace.com/spring-boot-learni ...

  4. Springboot中请求参数校验

    1.添加依赖 <!-- 参数校验 --> <dependency><groupId>org.springframework.boot</groupId> ...

  5. laravel框架中文手册_laravel请求参数校验方法

    对于后端开发而言,前端request请求中的参数校验是一个必不可少的环节.无论传来的参数是id还是email还是其他的参数,我们都要对参数的类型.大小.格式等等做这样或者那样的校验,然后才进行逻辑处理 ...

  6. SpringBoot全局异常处理及前端请求参数校验

    SpringBoot全局异常捕获处理及参数校验 文章目录 SpringBoot全局异常捕获处理及参数校验 为什么要用全局异常处理? 如何进行全局异常捕获和处理? 统一结果封装 统一返回结果 枚举类 使 ...

  7. Spring请求参数校验

    SpringMVC支持的数据校验是JSR303的标准,通过在bean的属性上打上@NotNull.@Max等进行验证.JSR303提供有很多annotation接口,而SpringMVC对于这些验证是 ...

  8. springboot使用validator进行参数校验

    前言 公司项目是前后端分离的,为了保证前端传输数据的合法性,对参数进行校验就很有必要.hibernate-validator就是一个不错的参数校验的解决方法.spring-boot-starter-w ...

  9. nest笔记七:参数校验

    nest笔记七:参数校验 nestjs的参数校验官方文档:https://docs.nestjs.com/techniques/validation. 它主要使用第三方的class-validator ...

  10. SpringBoot @Validated注解实现参数校验

    1. 前言 做web开发有一点很烦人就是要校验参数,基本上每个接口都要对参数进行校验,比如一些格式校验 非空校验都是必不可少的.如果参数比较少的话还是容易 处理的一但参数比较多了的话代码中就会出现大量 ...

最新文章

  1. CTFshow 命令执行 web56
  2. Maven引入外部jar的几种方法
  3. 【数据结构与算法】之组成和的完全平方数最少个数的求解思路与算法示例
  4. c#中用鼠标点击事件实现抠图
  5. 这可能是这次疫情最搞笑的事情,可看着看着却鼻酸了
  6. 原型设计模式:创建另一个小车
  7. 工业级光纤收发器一般适合哪些应用环境?
  8. 【CodeForces - 569A】Music (数学公式化简,模拟追及问题)
  9. osg布告板技术(Billboard)
  10. eclipse oracle驱动位置,【求助】eclipse导入了Oracle的驱动包连不上Oracle
  11. 【java8新特性】——Optional详解(三)
  12. POJ3349 哈希算法
  13. (最新)面向科研人员的免费遥感数据集
  14. wamp 增加php 7.2,笔记 : WampServe加装PHP版本(7.2.3)为例
  15. 关于无法在驱动器0分区上安装Windows
  16. Android proguard 详解(一)
  17. C# Socket实现两台电脑通信(三)
  18. solid works 插入两两相交直线确定的基准面作图
  19. 跨境电商开发制作搭建
  20. latex(2)排版论文《自动化学报》

热门文章

  1. 远程办公与人心、机制、工具
  2. 在edge浏览器找不到internet选项?
  3. 清华梦的粉碎—写给清华大学的退学申请(转自王垠Blog)
  4. 网桥 网卡网桥有什么区别
  5. ATX电源故障导致某些主板不能启动
  6. 树莓派4使用CSI摄像头
  7. SUMX2MY2函数,你知道什么意思吗?
  8. 五线谱音名和组别对照表_五线谱最全知识及符号!
  9. ASCII码、Unicode和UTF-8之间的转换
  10. 为什么int类型(16位)的下溢下限为-32768而上溢上限却是32767