validation.nocaptcha翻译 validate翻译

admin 热点新闻

validation.nocaptcha翻译 validate翻译

本文章主要讲述validation(prority翻译),生活百科网主要提供生活常识,数码科技,有氧运动,家庭美食,科普答疑,衣物护理,生活乐趣等生活百科知识

互联网公司里边,有很多运营系统,俗称后台管理系统。

如你在电商app上面领取优惠券、领取红包、预约商品等,都是在参与由运营系统创建的一个个的活动,即优惠券活动、红包活动、预约活动等。

而这些活动的创建、修改、关闭,都有严谨的数据校验,否则运营人员稍有不慎,就容易产生脏数据,引发到线上,俗称线上事故,如价格门等。

如何安全、高效地确保数据的正确性呢,这就涉及到本文要分享的一个组件——validation。

先说下常规方案。

如我们在做数据校验的时候,如果不经过构思,或者引入其他成熟的工具,经常会导致写了大量的if、else语句,代码可读性差,且十分不利于后续的维护。

如我们对一个活动名称的长度的校验,要求在5-20个字符之间,常规的写法可能如下:

一两个字段还好,但实际业务往往几十个字段,业务性就十分重了,这样代码读起来十分痛苦。

我们带来引入validation之后的优化方案。

1.引入依赖

SpringBoot已有validation的starter了,我们引入即可开箱即用。

2.定义入参

入参必须为对象的形式,我们方可在对象的属性上使用注解,定义校验规则。

入参对象的name字段,我们通过@Size注解,规定了长度最长为20个字符,最短为5个字符

2.编写接口

常规创建一个SpringMVC的Controller,编写每个方法就是一个个的http接口。

我们定义了一个活动创建的接口,接口入参为上述的活动入参对象,打上@Valid注解,表示会对对象的属性,根据编写的规则进行校验。

3.测试校验

我们要求活动名称的字符在5-20个字符之间。我们现在输入3个字符,发起一次http请求,可以看到,返回400的状态码,请求失败了。

400状态码(type=Bad Request, status=400),即请求错误的意思。

a*3

我们修改name的长度为6个,即在5-20之间,再次发起该接口的http请求,可以看到,返回的状态码是200,请求成功。

a*6

200 OK(成功) 服务器已成功处理了请求。

是不是很简单呢,逻辑也很清晰,代码也十分具有可维护性。

其实自己实现这个校验也不难,我们可以定义一些自己的注解,同样在需要校验的字段上打上我们的

注解

。校验的时候通过反射即可获取注解下面字段的

、校验

规则

,再将校验结果返回出去即可。只不过现在不建议自己造轮子,有现成的成熟开源,我们尽量用就是了。


标签:validation