本发明实施例涉及应用参数校验,尤其涉及一种参数校验结果生成方法及装置、校验平台及存储介质。
背景技术:
1、客户端调用服务端的服务时往往需要进行参数校验。spring validation是目前常用的校验工具之一。spring validation对hibernate validator进行了又一层封装,方便在spring中使用。目前,使用spring validation校验技术在校验失败后生成的校验结果中包含校验失败的message(消息)时,缺少校验失败对应的错误码,不便于后续的业务逻辑区分;而为每个校验失败结果添加错误码需要针对每个api(application programminginterface,应用程序接口)接口编写硬编码,穷举每个需校验的字段,校验失败后再逐个判断为其绑定错误码和错误消息,代码编写及修改工作量大。
技术实现思路
1、本发明实施例提供一种参数校验结果生成方法及装置、校验平台及存储介质,通过将校验规则、校验错误消息以及对应的错误码绑定实现为每个字段的校验失败结果自动生成对应的错误码和校验错误消息,增加了校验失败时校验结果的可用性,且与业务编码解耦而无需对每个接口进行硬编码以及错误码判断,极大减少了工作量。
2、第一方面,本发明实施例提供了一种参数校验结果生成方法,包括:接收客户端调用云端应用程序接口api的请求;
3、基于mvc校验框架对所述请求进行校验并得到校验结果;
4、当校验结果包含校验错误消息时,根据所述校验错误消息以及预设的错误码枚举列表查找到对应的目标错误码枚举;其中,所述错误码枚举列表中的每条错误码枚举包含:错误码以及所述错误码对应的校验错误消息;
5、根据所述目标错误码枚举向所述客户端返回所述请求的错误码以及校验错误消息。
6、作为一个实施例,所述mvc校验框架为spring mvc校验框架,所述spring mvc校验框架包括:request mapping模块、spring validation模块、全局异常处理器、requestbean模块以及错误码枚举模块;所述校验结果包含校验错误消息;
7、所述基于mvc校验框架对所述请求进行校验并得到校验结果,包括:
8、所述request mapping模块根据请求路径通过所述request bean模块获取所述请求的请求对象;
9、所述request bean模块根据所述请求对象得到所述请求对象的模型并返回至所述request mapping模块,所述request mapping模块根据所述请求对象的模型得到模型的校验参数发送至所述spring validation模块;
10、所述spring validation模块根据所述请求对象的模型的校验参数进行校验,若校验异常则抛出校验异常信息;
11、所述全局处理器捕获所述校验异常信息后提取出所述请求的校验错误消息。
12、作为一个实施例,所述根据所述校验错误消息以及预设的错误码枚举列表查找到对应的目标错误码枚举,包括:
13、所述错误码枚举模块接收所述全局异常处理器发送的所述请求的校验错误消息,并根据所述校验错误消息查找所述错误码枚举列表得到所述目标错误码枚举。
14、作为一个实施例,所述spring mvc校验框架包括还包括:request body advice模块;所述根据所述目标错误码枚举向所述客户端返回所述请求的错误码以及校验错误消息包括:
15、所述错误码枚举模块将所述目标错误码枚举依次通过所述全局异常处理器以及所述api接口模块发送至所述request body advice模块;
16、所述request body advice模块根据所述目标错误码枚举得到所述请求的错误码以及校验错误消息后发送至所述api接口模块;
17、所述api接口模块向所述客户端返回所述请求的错误码以及校验错误消息。
18、作为一个实施例,所述方法还包括:
19、所述spring validation模块对所述请求的参数校验通过后依次发送校验通过消息至所述request mapping模块、所述api接口模块以及所述request body advice模块;
20、所述request body advice模块组装得到请求校验成功消息后发送至所述api接口模块;
21、所述api接口模块将所述请求校验成功消息返回至所述客户端。
22、第二方面,本发明实施例提供了一种参数校验结果生成装置,包括:
23、请求接收模块,用于接收客户端调用云端应用程序接口api的请求;
24、校验模块,用于基于mvc校验框架对所述请求进行校验并得到校验结果;
25、校验错误查找模块,用于当所述校验模块的校验结果包含校验错误消息时,根据所述校验错误消息以及预设的错误码枚举列表查找到对应的目标错误码枚举;所述错误码枚举列表中的每条错误码枚举包含:错误码以及所述错误码对应的校验错误消息;
26、校验结果返回模块,用于根据所述目标错误码枚举向所述客户端返回所述请求的错误码以及校验错误消息。
27、作为一个实施例,所述mvc校验框架为spring mvc校验框架,所述spring mvc校验框架包括:request mapping模块、spring validation模块、全局异常处理器、requestbean模块以及错误码枚举模块;所述校验结果包含校验错误消息;
28、所述校验模块包括:
29、请求对象解析子模块,所述request mapping模块根据请求路径通过所述requestbean模块获取所述请求的请求对象;
30、参数提取子模块,所述request bean模块根据所述请求对象得到所述请求对象的模型并返回至所述request mapping模块,所述request mapping模块根据所述请求对象的模型得到模型的校验参数发送至所述spring validation模块;
31、spring校验子模块,所述spring validation模块根据所述请求对象的模型的校验参数进行校验,若校验异常则抛出校验异常信息;
32、校验错误消息捕获子模块,全局异常处理器捕获所述校验异常信息后提取出所述请求的校验错误消息。
33、作为一个实施例,所述校验错误查找模块包括:所述错误码枚举模块接收所述全局异常处理器发送的所述请求的校验错误消息,并根据所述校验错误消息查找所述错误码枚举列表得到所述目标错误码枚举。
34、第三方面,本发明实施例提供了一种校验平台,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的参数校验结果生成方法。
35、第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的参数校验结果生成方法。
36、本发明实施例提供的技术方案与现有技术相比至少具备以下积极效果:
37、本发明实施例的参数校验结果生成方法,当基于mvc校验框架对所述请求进行校验并得到校验结果包含校验错误消息时,根据校验错误消息以及预设的错误码枚举列表查找到对应的目标错误码枚举,然后根据目标错误码枚举向客户端返回请求的错误码以及校验错误消息,通过将校验规则与错误码以及错误消息绑定,实现校验结果与业务编码解耦,不仅可为每个接口每个字段的校验错误输出对应的错误码和校验错误消息,增强校验结果可用性,而且无需硬编码以及错误码判断,减轻编码以及维护的工作量。