一种基于JSON模式的实时报文接口自动生成方法技术

技术编号:29132401 阅读:18 留言:0更新日期:2021-07-02 22:27
本发明专利技术公开了一种基于JSON模式的实时报文接口自动生成方法,包括以下步骤:S1,根据传输协议定义数据类型,生成数据结构体;S2,将数据结构体转换成JSON Schema文件;S3,对生成的JSON Schema文件进行校验;S4,将经校验后的JSON Schema文件转化为QTui文件;S5,利用Qtui文件生成静态报文接口。本发明专利技术解决了现有技术存在的对接口测试的验证不够直观和充分、从而影响接口开发和联试效率的问题。

【技术实现步骤摘要】
一种基于JSON模式的实时报文接口自动生成方法
本专利技术涉及指挥自动化数据处理
,具体是一种基于JSON模式的实时报文接口自动生成方法。
技术介绍
随着软件技术的发展以及体系作战的应用,指挥自动化系统的软件规模越来越大,系统设计和模块划分日益复杂,导致系统中的软件配置项CSCI(ComputerSoftwareConfigurationItem)越来越多,软件间交互的标准化结构报文接口指数级增加,目前进行标准化结构报文接口验证方法主要是基于时间序列的场景驱动方法。该方法根据预先设置的场景,以仿真时间为基准点,在不同的时刻根据场景预设的目标状态,连续生成实时报文接口。基于时间序列的场景驱动方法连续发送实时数据报文,对接口测试的验证不够直观和充分,主要表现在数据组织与显示存在时间差,无法通过静态方式查看模拟器当前发送的数据要素与实际显示的数据要素是否一致;对构造的实时数据报文在数据组织时无法进行自校验;对于字典较多的实时数据报文,对于字典较多的数据要素不便于测试,无法做到接口穷尽测试。
技术实现思路
为克服现有技术的不足,本专利技术提供了一种基于JSON模式的实时报文接口自动生成方法,解决现有技术存在的对接口测试的验证不够直观和充分、从而影响接口开发和联试效率的问题。本专利技术解决上述问题所采用的技术方案是:一种基于JSON模式的实时报文接口自动生成方法,包括以下步骤:S1,根据传输协议定义数据类型,生成数据结构体;S2,将数据结构体转换成JSONSchema文件;S3,对生成的JSONSchema文件进行校验;S4,将经校验后的JSONSchema文件转化为QTui文件;S5,利用Qtui文件生成静态报文接口。本专利技术首先对传输协议进行字典理解,形成基于基本数据类型的结构体定义方法,生成数据结构体;然后按照分析的基本数据类型,形成数据结构体;然后将数据结构体转换成JSONSchema文件;然后对JSONSchema文件进行校验,形成的JSONSchema文件具备接口自校验能力,在构造数据时直接按照文件模板实现数据校验;然后将JSONSchema文件转化为QTui文件,该文件是根据传输协议,对协议中的各字段进行了自校验,对枚举类型进行了数据初始化的静态界面;然后形成根据传输协议的静态报文接口,该静态报文接口覆盖传输协议全部要素;最后利用Qtui文件生成静态报文接口,该静态报文接口覆盖传输协议全部要素。本专利技术提出了一种基于JSON(JavaScriptObjectNotation,JS对象简谱)模式的实时报文接口自动生成方法,利用JSON丰富的校验格式语言进行接口生成,提高指挥自动化信息系统的接口开发和联试效率。本专利技术可以实现快速时间接口生成,便捷性、直观性和扩展性比较高。本专利技术解决了现有技术存在的对接口测试的验证不够直观和充分、从而影响接口开发和联试效率的问题。作为一种优选的技术方案,步骤S1生成的数据结构体为C++结构体、C结构体、Java结构体或c#结构体。以上几种结构通用性强,运用广泛,使本专利技术的使用场景广泛。作为一种优选的技术方案,步骤S1中采用以下方式的一种或多种定义数据类型:将数据类型char[]、unsignedchar[]、short、unshortshort、int、unsignedint、num作为整型数据类型;将数据类型double、float作为浮点数数据类型;将数据类型char[]作为字符串数据类型;将数据类型list类型作为数组数据类型;将数据类型struct作为对象数据类型。通过以上数据类型的定义方式,便于实现基本数据类型的结构体定义。作为一种优选的技术方案,步骤S2包括以下步骤:S21,将步骤S1生成的数据结构体的关键字转换为JSON模式的关键字;S22,将步骤S1生成的数据结构体的数据类型转换为JSON模式的数据类型;S23,将JSON模式的关键字、JSON模式的数据类型按照JSONSchema格式生成JSONSchema文件。通过以上步骤,便实现了将数据结构体的关键字、数据类型进行转换,从而生成JSONSchema文件。作为一种优选的技术方案,步骤S22中,采用以下方式的一种或多种将数据结构体的数据类型转换为JSON模式的数据类型:将数据类型char[]、unsignedchar[]、short、unshortshort、int、unsignedint、num转换为JSON模式的integer数据类型;将数据类型double、float转换为JSON模式的number数据类型;将数据类型char[]转换为JSON模式的string数据类型;将数据类型list转换为JSON模式的array数据类型;将数据类型struct转换为JSON模式的object数据类型。通过以上步骤,便实现了将数据结构体的数据类型转换为对应的JSON的数据类型。作为一种优选的技术方案,步骤S3所述校验包括语义校验和/或语法校验。作为一种优选的技术方案,所述语义校验包括字符串实例校验、数值实例校验、正则表达式匹配校验、相互依存关键字校验、缺省值校验、有效值校验、条件校验、默认值校验的一种或多种。作为一种优选的技术方案,所述语法校验包括最小值校验、最大值校验、长度校验、唯一性校验、数组边界校验、枚举范围校验、依赖校验的一种或多种。作为一种优选的技术方案,步骤S3中,采用以下方式的一种或多种对生成的JSONSchema文件进行校验:对integer数据类型进行最小值校验和/或最大值校验;对string数据类型进行长度校验和/或正则表达式校验;对array数据类型进行唯一性校验和/或数组边界校验;对enum数据类型进行枚举范围校验;对object数据类型进行依赖校验。通过执行以上技术方案,便实现了对生成的JSONSchema文件的校验,从而对数据进行自校验,使生成的JSONSchema文件具备接口自校验能力,在构造数据时直接按照文件模板实现数据校验。作为一种优选的技术方案,步骤S4中,采用以下方式的一种或多种将经校验后的JSONSchema文件转化为QTui文件:将JSONSchema文件的type数据类型文件转换为QTui文件的QLineEdit类型控件;将JSONSchema文件的title数据类型文件转换为QTui文件的QLabel类型控件;将JSONSchema文件的description数据类型文件转换为QTui文件的QLabel类型控件;将JSONSchema文件的enum数据类型文件转换为QTui文件的QComboBox类型控件;将JSONSchema文件的object数据类型文件转换为QTui文件的QGroupBox和QListView类型控件;本文档来自技高网...

【技术保护点】
1.一种基于JSON模式的实时报文接口自动生成方法,其特征在于,包括以下步骤:/nS1,根据传输协议定义数据类型,生成数据结构体;/nS2,将数据结构体转换成JSON Schema文件;/nS3,对生成的JSON Schema文件进行校验;/nS4,将经校验后的JSON Schema文件转化为QTui文件;/nS5,利用Qtui文件生成静态报文接口。/n

【技术特征摘要】
1.一种基于JSON模式的实时报文接口自动生成方法,其特征在于,包括以下步骤:
S1,根据传输协议定义数据类型,生成数据结构体;
S2,将数据结构体转换成JSONSchema文件;
S3,对生成的JSONSchema文件进行校验;
S4,将经校验后的JSONSchema文件转化为QTui文件;
S5,利用Qtui文件生成静态报文接口。


2.根据权利要求1所述的一种基于JSON模式的实时报文接口自动生成方法,其特征在于,步骤S1生成的数据结构体为C++结构体、C结构体、Java结构体或c#结构体。


3.根据权利要求1或2所述的一种基于JSON模式的实时报文接口自动生成方法,其特征在于,步骤S1中采用以下方式的一种或多种定义数据类型:
a.将数据类型char[]、unsignedchar[]、short、unshortshort、int、unsignedint、num作为整型数据类型;
b.将数据类型double、float作为浮点数数据类型;
c.将数据类型char[]作为字符串数据类型;
d.将数据类型list类型作为数组数据类型;
e.将数据类型struct作为对象数据类型。


4.根据权利要求1或2所述的一种基于JSON模式的实时报文接口自动生成方法,其特征在于,步骤S2包括以下步骤:
S21,将步骤S1生成的数据结构体的关键字转换为JSON模式的关键字;
S22,将步骤S1生成的数据结构体的数据类型转换为JSON模式的数据类型;
S23,将JSON模式的关键字、JSON模式的数据类型按照JSONSchema格式生成JSONSchema文件。


5.根据权利要求4所述的一种基于JSON模式的实时报文接口自动生成方法,其特征在于,步骤S22中,采用以下方式的一种或多种将数据结构体的数据类型转换为JSON模式的数据类型:
f.将数据类型char[]、unsignedchar[]、short、unshortshort、
int、unsignedint、num转换为JSON模式的integer数据类型;
g.将数据类型double、float转换为JSON模式的number数据类型;
h.将数据类型char[]转换为JSON模式的string数据类型;
i.将数据类型list转换为J...

【专利技术属性】
技术研发人员:张明阳李伟黄黔川于翔王凯刘湘德张瑞王碧垚刘盼盼吴永生
申请(专利权)人:中国电子科技集团公司第二十九研究所
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1