本发明涉及数据处理,尤其涉及一种报文比对方法、系统和计算机可读存储介质。
背景技术:
1、随着民航托管服务的接口量逐年增加,接口文档数量也随之增加,如果接口文档更新不及时导致文档的接口报文与正确报文结构不一致,将影响前端开发者开发接口的进度。
2、接口报文通常是指两个不同的软件系统或网络服务之间进行信息交互的数据格式和规范,它们定义了如何以一种标准的、预定义的方式在通信双方之间传输数据,确保接口信息的正确理解和应用。接口报文的格式和规范通常是后端开发者与前端开发者共同协商确定的,并通过接口文档或其他方式记录下来。接口文档用来描述系统所提供的接口信息,能够让前端开发人员与后台开发人员更好地配合,提高工作效率,也方便后期人员查看和维护或者测试人员进行接口测试,因此,接口文档通常会详细说明各个应用程序接口api的使用方法和预期行为,以防止在实际使用时产生误解或错误。但是在项目实际开发过程中,经常会出现接口文档的报文与实际报文结构不一致的情况,直接影响了前端开发者的开发进度。
技术实现思路
1、本发明目的在于提供一种报文比对方法、系统和计算机可读存储介质,通过将报文转换成xpath集,逐节点比对报文数据结构,当接口文档中的接口报文与实际生产报文结构不一致时,能够根据比对结果准确地修改接口文档,为前端开发者提供参考数据。
2、为实现上述目的,本发明提供如下技术方案:
3、一种报文比对方法,包括:
4、定时从服务器端下载日志合集,利用预先建立的正则表达式解析所述日志合集,获取接口信息与各接口的生产报文;
5、读取接口文档中的接口报文,根据xpath路径分别提取所述接口报文和所述生产报文的节点集,通过对所述接口报文和所述生产报文中各节点的数据结构进行比对,得到报文结构异常数据集;
6、将所述报文结构异常数据集以及对应的接口信息发送到接口校验端进行准确性校验,再利用校验后的报文结构异常数据集对所述接口文档进行修改。
7、进一步地,在定时从服务器端下载日志合集之前,还包括:
8、对各接口所在的服务器进行信息安全校验。
9、进一步地,所述利用预先建立的正则表达式解析所述日志合集,获取接口信息与各接口的生产报文,包括:
10、构建第一正则表达式,并利用所述第一正则表达式从所述日志合集中匹配到多个生产日志;
11、构建第二正则表达式,并利用所述第二正则表达式从每个生产日志中匹配到对应的接口信息与生产报文。
12、进一步地,所述第一正则表达式至少包括日志开始标识符、日志结束标识符和日志标识符;
13、利用所述第一正则表达式从所述日志合集中匹配到生产日志,包括:
14、利用所述第一正则表达式在所述日志合集中确定生产日志的起始行和结束行,其中,根据所述日志开始标识符确定所述生产日志的起始行,根据所述日志结束标识符确定所述生产日志的结束行;
15、提取开始行,然后逐行读取所述日志合集,提取每一行具有相同日志标识符的文本行作为日志行,直到提取到结束行;
16、将提取到的开始行、日志行和结束行进行拼接,得到完整的生产日志。
17、进一步地,所述第二正则表达式至少包括接口名、接口版本、接口调用方、接口所属软件、报文格式和生产报文;
18、利用所述第二正则表达式从生产日志中匹配到对应的接口信息与生产报文,包括:
19、利用所述第二正则表达式从生产日志中匹配到接口名、接口版本、接口调用方、接口所属软件、报文格式和生产报文。
20、进一步地,所述根据xpath路径分别提取所述接口报文和所述生产报文的节点集,通过对所述接口报文和所述生产报文中各节点的数据结构进行比对,得到报文结构异常数据集,包括:
21、根据xpath路径表达式选取所述接口报文的节点集,获取所述接口报文的节点集中各节点的数据结构,生成第一xpath数据集;
22、根据xpath路径表达式选取所述生产报文的节点集,获取所述生产报文的节点集中各节点的数据结构,生成第二xpath数据集;
23、比对所述第一xpath数据集和所述第二xpath数据集,得到报文结构异常数据集。
24、进一步地,所述比对所述第一xpath数据集和所述第二xpath数据集,得到报文结构异常数据集,包括:
25、遍历所述第一xpath数据集和所述第二xpath数据集;
26、若沿相同路径选取的节点处的数据结构相同,则跳过该节点;
27、若沿相同路径选取的节点处的数据结构不同,则将该节点标记为异常节点,同时记录异常节点信息,包括异常数据结构、异常类型以及该节点出现次数;
28、汇总异常节点信息,并对重复的异常节点信息进行去重处理,得到报文结构异常数据集。
29、进一步地,所述方法还包括:
30、设置接口黑名单,所述接口黑名单用于记录无需进行报文结构比对的特殊接口。
31、一种报文比对系统,包括:
32、日志下载与解析模块,用于定时从服务器端下载日志合集,利用预先建立的正则表达式解析所述日志合集,获取接口信息与各接口的生产报文;
33、报文比对模块,用于读取接口文档中的接口报文,根据xpath路径分别提取所述接口报文和所述生产报文的节点集,通过对所述接口报文和所述生产报文中各节点的数据结构进行比对,得到报文结构异常数据集;
34、校验模块,用于将所述报文结构异常数据集以及对应的接口信息发送到接口校验端进行准确性校验,再利用校验后的报文结构异常数据集对所述接口文档进行修改。
35、基于同一发明构思,还提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令执行时实现前述的报文比对方法。
36、本发明的技术效果和优点:
37、(1)将生产报文与接口报文的结构转换为xpath结构,通过对接口报文和生产报文中各节点的数据结构进行比对,得到准确的报文结构异常数据集;
38、(2)通过报文结构异常数据集清晰地展示报文比对结果,使得接口校验端的接口负责人能够详细了解接口文档中存在的问题,并及时修改接口文档;
39、(3)节省了前端开发者开发接口的时间,提高了开发效率。
40、本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所指出的结构来实现和获得。
1.一种报文比对方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在定时从服务器端下载日志合集之前,还包括:
3.根据权利要求1所述的方法,其特征在于,所述利用预先建立的正则表达式解析所述日志合集,获取接口信息与各接口的生产报文,包括:
4.根据权利要求3所述的方法,其特征在于,所述第一正则表达式至少包括日志开始标识符、日志结束标识符和日志标识符;
5.根据权利要求3或4所述的方法,其特征在于,所述第二正则表达式至少包括接口名、接口版本、接口调用方、接口所属软件、报文格式和生产报文;
6.根据权利要求1所述的方法,其特征在于,所述根据xpath路径分别提取所述接口报文和所述生产报文的节点集,通过对所述接口报文和所述生产报文中各节点的数据结构进行比对,得到报文结构异常数据集,包括:
7.根据权利要求6所述的方法,其特征在于,所述比对所述第一xpath数据集和所述第二xpath数据集,得到报文结构异常数据集,包括:
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
9.一种报文比对系统,其特征在于,所述系统包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令执行时实现权利要求1-8任一项所述的报文比对方法。