一种软件工具包的生成方法、装置及可读存储介质与流程

未命名 09-24 阅读:69 评论:0


1.本发明涉及计算机技术领域,尤其涉及一种软件工具包的生成方法、装置及计算机可读存储介质。


背景技术:

2.随着云计算技术的发展,越来越多的应用发布在公有云上。随着公有云的普及,云上产品日益繁多、用户大量增加、场景不断深化,就需要公有云平台为各云上产品提供统一标准的软件开发工具包(software development kit,sdk)生成能力,使得云平台能够快速的开放云能力,方便用户按照相同的标准集成和对接。
3.在相关技术中,一种通过产品侧自行开发的软件工具包的方法依赖于开发人员自身设计开发能力,导致生成的软件工具包标准和接入方式均不一致,加大了用户接入和维护难度;而另一种通过开源工具生成软件工具包的方法,则仍然需要自行开发接口调用功能,且对于软件工具包调用路径上不同公有云平台分布式网关的兼容性较差。


技术实现要素:

4.本发明实施例提供了一种软件工具包的生成方法、装置及计算机可读存储介质,能够提高软件工具包生成的灵活性和效率。
5.本发明的技术方案是这样实现的:
6.本发明实施例提供了一种软件工具包的生成方法,应用于第一设备,所述第一设备与第二设备路由连接,所述方法包括:
7.对待调用服务的接口描述文件进行解析,获取预设数据类型的接口元数据模型;所述接口元数据模型包括接口调用信息和接口路径信息;
8.将所述接口路径信息和外部调用路径进行绑定,确定绑定后的接口元数据模型;所述外部调用路径用于所述第二设备访问所述待调用服务的软件接口;
9.从预设应用界面接收录参数,并基于所述绑定后的接口元数据模型、所述录入参数与预设代码模板,生成软件工具包;所述软件工具包用于配置在所述第二设备上,以使所述第二设备通过所述软件工具包,调用所述待调用服务。
10.本发明实施例提供一种软件工具包的生成装置,应用于第一设备,所述第一设备与第二设备路由连接,所述装置包括:获取单元、确定单元和生成单元;其中,
11.所述获取单元,用于对待调用服务的接口描述文件进行解析,获取预设数据类型的接口元数据模型;所述接口元数据模型包括接口调用信息和接口路径信息;
12.所述确定单元,用于将所述接口路径信息和外部调用路径进行绑定,确定绑定后的接口元数据模型;所述外部调用路径用于所述第二设备访问所述待调用服务的软件接口;
13.所述生成单元,用于从预设应用界面接收录入参数,并基于所述绑定后的接口元数据模型、所述录入参数与预设代码模板,生成软件工具包;所述软件工具包用于配置在所
述第二设备上,以使所述第二设备通过所述软件工具包,调用所述待调用服务。
14.本发明实施例提供一种第一设备,包括:
15.存储器,用于存储可执行指令;
16.处理器,用于执行所述存储器中存储的可执行指令时,当所述可执行指令被执行时,所述处理器执行所述软件工具包的生成方法。
17.本发明实施例提供了一种计算机可读存储介质,所述存储介质存储有可执行指令,当所述可执行指令被执行时,用于引起处理器执行如本发明实施例所述的软件工具包的生成方法。
18.本发明实施例提供了一种软件工具包的生成方法、装置及可读存储介质,在该方法中,对导入的待调用服务的接口描述文件进行解析,获取预设数据类型的接口元数据模型来对应用程序编程接口进行管理,降低了产品侧接入的限制条件与难度,提高了软件工具包生成的灵活性;同时将接口路径信息和外部调用路径进行绑定,利用绑定后的接口元数据模型和预设代码模板,生成软件工具包,实现了对不同公有云平台网关路由的集成与兼容,使云上应用接入更快捷,易用性更高。进一步地,根据录入的参数,结合预设代码模板生成软件工具包,实现了标准化软件工具包的生成,提高了软件工具包生成的效率。通过本发明实施例提供的方法,云上应用只需填入少量参数就能自动生成统一标准的软件包工具,从而生成提高了软件工具包的灵活性和效率。
附图说明
19.图1为本发明实施例提供的一种软件工具包的生成方法的流程示意图一;
20.图2为本发明实施例提供的软件工具包的生成系统模块结构示意图;
21.图3为本发明实施例提供的一种软件工具包的生成方法的流程示意图二;
22.图4为本发明实施例提供的一种软件工具包的生成方法的流程示意图三;
23.图5为本发明实施例提供的一种软件工具包的生成方法的流程示意图四;
24.图6为本发明实施例提供的代码生成器多语言适配器的效果示意图;
25.图7为本发明实施例提供的一种软件工具包的生成方法的流程示意图五;
26.图8为本发明实施例提供的一种软件工具包的生成装置的结构示意图;
27.图9为本发明实施例提供的一种第一设备的结构示意图。
具体实施方式
28.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
29.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
30.目前各云上应用提供软件工具包方式主要有如下三种:
31.一、应用开发方自己开发应用软件工具包;二、基于开源框架自动生成产品软件工具包;三、基于获取的产品源码生成软件工具包的方法。
32.应用程序接口(application programming interface,api)能力提供者自行开发sdk的方式,依赖api能力提供者自身设计开发能力,会出现云上产品提供的sdk标准不一致、接入方式不一致、提供的sdk支持编程语言不一致,加大用户接入难度。
33.基于swagger开源框架自动生成产品sdk的方式,生成的sdk严格基于oas标准且支持编程语言较为丰富,但依赖第三方工具包较多,功能复杂、对产品提供api接口集封装较弱、云api调用签名方法需自行开发且不支持集成公有云平台分布式网关。
34.基于获取的产品源码生成软件工具包的方法,生成sdk的前置条件需要获取源代码且api提供方的源码是java语言实现的,这就增大了产品生成sdk的限制条件,首先大部分上云产品(外部产品、内部产品)是不会对平台提供源码的,其次提案中获取源代码并编译为字节码的形式只适用于java语言开发的api接口,无法满足多语言产品生成sdk需求。
35.本发明实施例提供的软件工具包的生成方法可以由第一设备执行,具体地,可以由第一设备上的软件工具包的生成装置执行。在一些实施例中,第一设备可以是服务器。
36.图1为本发明实施例提供的一种软件工具包的生成方法的流程示意图一,将结合以下步骤进行具体说明。
37.s101、对待调用服务的接口描述文件进行解析,获取预设数据类型的接口元数据模型;接口元数据模型包括接口调用信息和接口路径信息。
38.在本发明的实施例中,通过开源框架导出待调用服务的接口描述文件并对其进行解析,获取预设数据类型的接口元数据模型并保存到数据库中,该接口元数据模型包括接口调用信息和接口路径信息。
39.在本发明的实施例中,接口调用信息包括接口名称、接口调用方法、http调用方法、接口请求参数以及接口响应参数等。
40.在本发明的实施例中,收集到接口描述文件后,数据转换器对接口描述文件中的接口名称、接口路径、接口调用方法、http调用方式、接口请求参数、接口响应参数等进行解析。其中请求参数与响应参数分别存在多层嵌套关系,因此转换器在处理接口请求参数和响应参数时需按照接口的维度递归检索解析,最终获取请求和响应参数的层级结构并存入数据库中。
41.在本发明的实施例中,支持导入基于预设标准的接口描述文件的开源框架可以包括:swagger、knife4j等,该预设标准可以为oas标准,接口元数据模型的格式可以如下所示:
42.[0043][0044]
在本发明的实施例中,title表示标题,用于说明该文件、host提供接口的ip、basepath为“/”,代表该json文件内接口地址前缀、paths代表该文件内所有接口的path路径集合、operationid为接口访问方法,用于生成软件工具包中健康检查接口的本地方法,名为healthusingget、get为接口访问方法等,其余字符意义具体可参考表1和表2。在本发明的一些实施例中,通过表1示出了接口元数据模型中的接口信息,通过表2示出了接口元数据模型中的接口请求响应参数。
[0045]
表1
[0046]
序号字段名称字段描述字段类型1nameapi名称varchar
2titleapi标题varchar3summaryapi概述varchar4http_methodhttp api请求类型(全大写)varchar5protocolhttp协议[http/https]varchar6pathapi基础路径varchar7gateway_pathapi网关路径varchar8consumers指定请求类型varchar9produces指定响应类型varchar10timeout调用接口的超时时间int
[0047]
表2
[0048][0049]
s102、将接口路径信息和外部调用路径进行绑定,确定绑定后的接口元数据模型;外部调用路径用于第二设备访问待调用服务的软件接口。
[0050]
在本发明的实施例中,获取到接口路径信息后,将接口路径信息和外部调用路径进行绑定,该外部调用路径信息用于使得第二设备通过外部调用路径信息中定义的网关路由等路径,访问待调用服务的软件接口,最后获取绑定后的接口元数据模型,绑定后的接口元数据模型可通过公网网关访问底层接口。
[0051]
在本发明的实施例中,底层接口为接入系统的接口,软件工具包调用时会将请求转发至网关,网关再进行分发。
[0052]
s103、从预设应用界面接收录入参数,并基于绑定后的接口元数据模型、录入参数与预设代码模板,生成软件工具包;软件工具包用于配置在第二设备上,以使第二设备通过软件工具包,调用待调用服务。
[0053]
在本发明的实施例中,软件工具包的生成装置根据从预设应用界面接收到的录入
参数,以及绑定后的接口元数据模型和预设的代码模型,生成最终的软件工具包,第二设备通过该软件工具包,调用待调用服务。
[0054]
在本发明的一些实施例中,图2为本发明实施例提供的软件工具包的生成系统模块结构示意图,在图2中,应用展示层对应用程序编程接口元数据进行收集,后台逻辑层对收集到的元数据进行转换和绑定,得到绑定后的元数据并在数据存储层进行存储,用户在应用展示层中输入软件工具包生成的相关参数;代码生成器根据代码模板获取的模板、输入的软件工具包生成的相关参数和数据存储层存储的应用程序编程接口元数据生成源码,并将源码数据存储到数据存储层。
[0055]
可以理解的是,在本发明的实施例中,对导入的待调用服务的接口描述文件进行解析,获取预设数据类型的接口元数据模型来对应用程序编程接口进行管理,降低了产品侧接入的限制条件与难度,提高了软件工具包生成的灵活性;同时将接口路径信息和外部调用路径进行绑定,利用绑定后的接口元数据模型和预设代码模板,生成软件工具包,实现了对不同公有云平台网关路由的集成与兼容,使云上应用接入更快捷,易用性更高。进一步地,根据录入的参数,结合预设代码模板生成软件工具包,实现了标准化软件工具包的生成,提高了软件工具包生成的效率。通过本发明实施例提供的方法,云上应用只需填入少量参数就能自动生成统一标准的软件包工具,从而生成提高了软件工具包的灵活性和效率。
[0056]
在本发明的一些实施例中,图3为本发明实施例提供的一种工具包的生成方法的流程示意图二,s101可以通过s1011至s1013实现,将结合以下步骤进行具体说明。
[0057]
s1011、响应于预设应用界面上的导入操作,获取导入操作导入的接口描述文件。
[0058]
在本发明的一些实施例中,技术人员从预设应用界面上进行接口描述文件的导入,软件工具包的生成装置响应于预设应用界面上的导入操作,获取导入操作导入的接口描述文件。
[0059]
s1012、从至少一种解析工具中,确定目标解析工具;并利用目标解析工具对接口描述文件进行解析,得到至少一个元数据。
[0060]
在本发明的一些实施例中,导入的接口描述文件的解析要依赖于第三方解析工具,软件工具包的生成装置从多个第三方解析工具中,确定目标解析工具,然后利用目标解析工具对接口描述文件进行解析,得到至少一个元数据。
[0061]
在本发明的一些实施例中,info、tags以及paths等都为一个元数据。
[0062]
s1013、利用预设数据类型组织至少一个元数据,得到元数据模型。
[0063]
在本发明的一些实施例中,软件工具包的生成装置利用预设的数据类型组织至少一个元数据,得到元数据模型。
[0064]
可以理解的是,在本发明的一些实施例中,获取导入操作导入的接口描述文件;从至少一种解析工具中,确定目标解析工具;并利用目标解析工具对接口描述文件进行解析,得到至少一个元数据;利用预设数据类型组织至少一个元数据,得到元数据模型。该方法使得由接入产品提供的基于预设标准的通用接口描述文件对应用程序编程接口信息进行录入与管理,不依赖接入产品源码、不限产品侧编程语言,降低了产品侧接入的限制条件与难度。
[0065]
在本发明的一些实施例中,图4为本发明实施例提供的一种工具包的生成方法的流程示意图三,s102可以通过s1021至s1022实现,将结合以下步骤进行具体说明。
[0066]
s1021、获取第一设备的外部网关路由,作为外部调用路径。
[0067]
在本发明的一些实施例中,软件工具包的生成装置获取第一设备的外部网关路由的配置信息,作为外部调用路径。
[0068]
在本发明的一些实施例中,外部网关路由的配置信息是指请求从网关转发到产品侧或者说接入产品的接口的请求路径等相关转发规则。
[0069]
s1022、将外部调用路径与接口路径信息进行关系映射,确定绑定后的接口元数据模型。
[0070]
在本发明的一些实施例中,软件工具包的生成装置将外部调用路径与接口路径信息进行关系映射,确定绑定后的接口元数据模型,绑定后的接口元数据模型具备了通过网关向外暴露的能力。
[0071]
可以理解的是,在本发明的一些实施例中,获取第一设备的外部网关路由,作为外部调用路径;将外部调用路径与接口路径信息进行关系映射,确定绑定后的接口元数据模型,绑定后的接口元数据模型具备了通过网关向外暴露的能力,使得云上应用接入更快捷,易用性更高。
[0072]
在本发明的一些实施例中,图5为本发明实施例提供的一种工具包的生成方法的流程示意图四,s103可以通过s1031至s1034实现,将结合以下步骤进行具体说明。
[0073]
s1031、对绑定后的接口元数据模型进行数据内容整合,得到至少一个第一数据模型;至少一个第一数据模型包含对象模型数据、接口模型数据和请求响应模型数据。
[0074]
在本发明的一些实施例中,软件工具包的生成装置在数据库中获取所有的接口元数据进行整合,最后封装成至少一个第一模型数据,其中,该至少一个第一数据模型包含对象模型数据、接口模型数据和请求相应模型数据。
[0075]
s1032、根据录入参数指定的第一数据类型,对至少一个第一模型数据进行数据类型转换,得到第一数据类型的至少一个第一模型。
[0076]
在本发明的一些实施例中,软件工具包的生成装置根据用户输入参数获取第一数据类型,根据获取的数据类型,对至少一个第一模型数据进行数据类型转换,得到第一数据类型对应的至少一个第一模型。
[0077]
在本发明的一些实施例中,第一数据类型可以为java、python、go等,本发明不做限制。
[0078]
s1033、基于至少一个第一模型与预设模板代码,生成工具包源码。
[0079]
在本发明的一些实施例中,软件工具包的生成装置根据封装后的至少一个第一模型与预设代码模型,生成工具包源码。
[0080]
s1034、基于工具包源码,生成软件工具包。
[0081]
在本发明的一些实施例中,软件工具包的生成装置根据生成的工具包源码,生成软件工具包。
[0082]
在本发明的一些实施例中,s1032可以通过s201至s202实现,将结合以下步骤进行具体说明。
[0083]
s201、基于第一数据类型,在代码模板中确定对应的第一代码模板。
[0084]
在本发明的一些实施例中,软件工具包的生成装置根据用户输入的第一数据类型,在代码模板中确定与输入的数据类型对应的代码模板。
[0085]
在本发明的一些实施例中,第一数据类型可以为java、python、go等,代码模板包括java模板、golang模板、python模板等,本发明不做限制。
[0086]
s202、基于预设的数据类型映射关系,对至少一个第一模型数据进行数据类型转换,得到第一数据类型的至少一个的第一模型;数据类型映射关系包含预设数据类型与至少一种数据类型之间的映射关系;至少一种数据类型包含第一数据类型;第一模型包含由对象模型数据得到的对象模型、由接口模型数据得到的接口模型与由请求响应模型数据得到请求响应模型中的至少一个。
[0087]
在本发明的一些实施例中,软件工具包的生成装置根据第一模型数据和预设的数据类型之间的映射关系,将第一模型数据转化成和预设数据类型对应的数据类型,得到至少一个第一数据类型的第一模型,第一模型包含由对象模型数据得到的对象模型、由接口模型数据得到的接口模型与由请求响应模型数据得到请求响应模型中的至少一个。
[0088]
在本发明的一些实施例中,表3为本发明实施例提供的java数据类型和oas数据类型的对应关系,如下:
[0089]
表3
[0090]
java数据类型oas数据类型integerint32longint64floatfloatdoubledoublestringstringbytebytebooleanbooleandatedatebigdecimalnumber
[0091]
在本发明的一些实施例中,表4为本发明实施例提供的python数据类型和oas数据类型的对应关系,如下:
[0092]
表4
[0093]
python数据类型oas数据类型intint32intint64floatfloatfloatdoublestrstringbytesbyteboolbooleandatetimedatenumbernumber
[0094]
在本发明的一些实施例中,表5为本发明实施例提供的golang数据类型和oas数据类型的对应关系。
[0095]
表5
[0096]
golang数据类型oas数据类型int32int32int64int64float32floatfloat64doublestringstringbytebyteboolbooleandatetimedatenumbernumber
[0097]
在本发明的一些实施例中,表3为java数据类型和oas数据类型的对应关系;表4为python数据类型和oas数据类型的对应关系;表5为golang数据类型和oas数据类型的对应关系。以java数据类型与oas标准数据类型对应关系为例,映射关系由java生成器定义并实现,以此类推python及golang数据类型对应关系由python生成器和go生成器定义并实现。
[0098]
在本发明的一些实施例中,s202可以通过s2021至s2022实现,将结合以下步骤进行具体说明。
[0099]
s2021、根据第一数据类型,在统一抽象接口中匹配得到第一抽象方法;统一抽象接口包含至少一种数据类型对应的至少一种抽象方法。
[0100]
在本发明的一些实施例中,软件工具包的生成装置根据第一数据类型,在统一抽象接口中包含的至少一种数据类型对应的至少一种抽象方法中匹配得到第一抽象方法。
[0101]
s2022、利用第一抽象方法,对至少一个第一模型数据进行数据类型转换,得到至少一个第一模型;第一抽象方法中定义并实现了预设数据类型到第一数据类型的数据类型映射关系。
[0102]
在本发明的一些实施例中,第一抽象方法定义且实现了预设数据类型到第一数据类型的数据类型映射关系,软件工具包的生成装置利用第一抽象方法,对至少一个第一模型数据进行数据类型转换,得到至少一个第一模型。
[0103]
在本发明的一些实施例中,s2022可以通过s20221至s20222实现,结合以下步骤进行具体说明。
[0104]
s20221、通过统一抽象接口,传入数据类型转换的通用参数。
[0105]
在本发明的一些实施例中,软件工具包的生成装置通过统一抽象接口,传入数据类型转换的通用参数,即传入所有编程语言都需要的通用信息。
[0106]
在本发明的一些实施例中,所有编程语言都需要的通用信息包括:自动生成代码输出路径、软件包版本、产品名称、产品版本、模型包路径以及包路径等。
[0107]
s20222、利用第一抽象方法,结合通用参数,对至少一个第一模型数据进行数据类型转换,得到至少一个第一模型。
[0108]
在本发明的一些实施例中,软件工具包的生成装置利用第一抽象方法,结合编程语言需要的通用信息,对至少一个第一模型数据进行数据类型转换,得到至少一个第一模型。
[0109]
在本发明的一些实施例中,图6为本发明实施例提供的代码生成器多语言适配器的效果示意图。在图6中,“软件工具包生成器接口”提供添加属性抽象方法,“生成器默认实现”提供添加属性的默认实现,即所有编程语言都需要的通用信息例如:自动生成代码输出路径、软件工具包版本、产品名称、产品版本、模型包路径、包路径等;各编程语言(java、go、python及nodejs等)代码生成器作为“生成器默认实现”子类重写父类“添加属性”方法,在获取接口通用信息的同时再添加编程语言的特性组装成java、go及python等版软件工具包生成器所需要的属性。
[0110]
在本发明的一些实施例中,s202还可以通过s301至s303实现,将结合以下步骤进行具体说明。
[0111]
s301、在第一模型数据包含嵌套数据的情况下,对嵌套数据进行至少一次递归解析,通过每次递归解析得到预设数据类型的初始模型层数据。
[0112]
在本发明的一些实施例中,在第一模型数据包含嵌套数据,即复杂数据类型的情况下,软件工具包的生成装置对嵌套数据进行至少一次递归解析,通过每次递归解析得到预设数据类型的初始模型层数据,即基础数据类型。
[0113]
s302、根据数据类型映射关系,将初始模型层数据转换为第一数据类型的目标模型层数据,直至对最后一层嵌套数据解析完成,对每个目标模型层数据按照嵌套关系进行组装,得到转换后的嵌套数据。
[0114]
在本发明的一些实施例中,复合类型,即嵌套数据由基础类型组成的对象模型组装,上层模型由下层模型构造,即当模型中存在复杂类型,则将复杂类型拆解使用基础数据类型封装成复杂类型后再引入,使用递归算法层层钻取直到计算到最后一层,封装后再由下到上引入,至此完成复杂数据类型组装,得到转换后的嵌套数据。
[0115]
s303、基于转换后的嵌套数据得到第一模型。
[0116]
在本发明的一些实施例中,软件工具包的生成装置基于转换后的嵌套数据得到第一模型。
[0117]
在本发明的一些实施例中,s2022可以通过s401至s402实现,结合以下步骤进行具体说明。
[0118]
s401、若第一数据类型为复合数据类型,则利用第一抽象方法,导入复合数据类型对应的库文件。
[0119]
在本发明的一些实施例中,软件工具包的生成装置判断第一数据的类型,如果为复合数据类型,则利用第一抽象方法,导入复合数据类型对应的库文件,即复合数据类型对应的通用包。
[0120]
在本发明的一些实施例中,依据类属性字段类型不同动态的计算对象模型文件需要引入的通用包,如在java中字段类型是集合,需要引入java.util.list包,而基础类型则不需要导包,而python一般情况下对于字段数据类型是不需要导包的,但当遇到python2与python3数据类型兼容问题时就需要导入six模块处理诸如字符串和字节数组不兼容问题,是否导包逻辑同样通过软件工具包抽象接口作为统一入口交由各语言个性实现模块具体实现。
[0121]
s402、基于库文件对第一模型数据进行数据装换,得到第一模型。
[0122]
在本发明的一些实施例中,软件工具包的生成装置根据导入复合数据类型对应的
库文件,即复合数据类型对应的通用包,对第一模型数据进行数据装换,得到第一模型。
[0123]
在本发明的一些实施例中,s203可以通过s2031至s2033实现,将结合以下步骤进行具体说明。
[0124]
s2031、将至少一个第一模型写入第一代码模板,得到第一代码。
[0125]
在本发明的一些实施例中,软件工具包的生成装置将第一模型与第一代码模板映射,生成具体代码文件。
[0126]
s2032、对第一代码进行渲染,得到源码文件,并生成源码文件对应的源码描述文件。
[0127]
在本发明的一些实施例中,软件工具包的生成装置使用模板编译器渲染模板对第一代码进行渲染,得到源码文件以及源码文件对应的源码描述文件。
[0128]
在本发明的一些实施例中,代码模板渲染引擎采用轻量级模板引擎mustache。
[0129]
s2033、结合源码描述信息,对源码文件进行封装,得到工具包源码。
[0130]
在本发明的一些实施例中,软件工具包的生成装置根据工具包中的接口名称、请求类型、请求参数以及响应参数等,对源码文件进行封装,得到工具包源码。
[0131]
在本发明的一些实施例中,软件工具包的生成装置也可以在生成产品目录下所有接口的调用客户端模型,即客户端软件包,以产品为维度进行聚合封装,定义了客户端请求各要素,即接口名称、请求类型、请求位置、请求参数、响应参数等,还包含接口调用的代码示例,方便开发者集成到自己的应用中,然后将模型数据,即对象模型数据、请求模型数据、接口模型数据,接口数据统一存放至字典中,从程序包中资源文件中获取编程语言。对于模板文件,再使用模板编译器渲染模板生成具体代码文件。
[0132]
在本发明的一些实施例中,s101之前,软件工具包的生成方法还包括s501,结合以下步骤进行具体说明。
[0133]
s501、从预设应用界面,接收输入的录入参数。
[0134]
在本发明的一些实施例中,软件工具包的生成装置从预设的应用界面中,接收用户输入的录入参数。
[0135]
在本发明的一些实施例中,用户录入的参数可以为产品名称、产品版本和编程语言,如现需要生成云主机大类下弹性云主机产品java版本的软件包,用户录入的参数为语言language=java、产品类型product=云主机、模块名称modul=弹性云主机。
[0136]
在本发明的一些实施例中,基于s501,s1012中“利用目标解析工具对接口描述文件进行解析,得到至少一个元数据”的过程可以通过s1012-1至s1012-2实现,将结合以下步骤进行具体说明。
[0137]
s1012-1、利用目标解析工具,根据录入参数中指定的接口信息对接口描述文件进行解析,得到接口信息对应的至少一个接口数据;至少一个接口数据对应至少一种接口处理类型。
[0138]
在本发明的一些实施例中,软件工具包的生成装置利用目标解析工具,根据录入参数中指定的产品类型及编程语言等对接口描述文件进行解析,得到接口信息对应的至少一个接口数据。
[0139]
在本发明的一些实施例中,接口处理类型可以包括接口的请求信息处理和接口响应信息处理。
[0140]
s1012-2、根据至少一种接口处理类型,对至少一个接口数据进行聚合处理,得到至少一个元数据。
[0141]
在本发明的一些实施例中,软件工具包装置根据至少一种接口处理请求,对至少一个接口数据进行聚合处理,得到至少一个元数据。
[0142]
在本发明的一些实施例中,s1033可以通过s10331实现,将结合以下步骤进行具体说明。
[0143]
s10331、将工具包源码进行编译和打包,得到软件工具包。
[0144]
在本发明的一些实施例中,软件工具包的生成装置将得到的工具包进行编译和打包,得到软件工具包。
[0145]
在本发明的一些实施例中,将源码文件编译打包为可执行文件,例如,java源代码编译打包为xxx.jar文件,python源码(不需要编译)直接打包为xxx.tar.gz文件等。
[0146]
在本发明的一些实施例中,该软件包的生成方法还包括s601至s602,将结合以下步骤进行具体说明。
[0147]
s601、将源码文件与待调用服务保存在同一目录下。
[0148]
在本发明的一些实施例中,软件工具包的生成装置将生成的源码文件按照产品分目录存储,即一个产品对于一个文件夹,文件夹内为产品接口的软件包的代码。
[0149]
s602、将源码文件推送至预设代码仓库,以通过预设代码仓库对源码文件进行管理。
[0150]
在本发明的一些实施例中,软件工具包的生成装置提供将源码文件自动推送预设代码仓库能力,自动生成的代码由代码库管理员审核并合入预设代码仓库。
[0151]
在本发明的一些实施例中,图7为本发明实施例提供的一种软件工具包的生成方法的流程示意图五。如图7所示,包括:用户动作模块、对外服务模块、配置及元数据模块、生成器模块、软件工具包接口定义模块、通用实现模块以及各语言个性实现模块。
[0152]
图7中,用户动作模块主要由用户触发生成软件工具包的动作,对外服务模块响应该动作,触发软件工具包的生成。配置及元数据模块将获取用户录入的参数和应用程序编程接口数据发送给生成器模块;生成器模块将应用程序编程接口元数据、软件工具包生成器配置参数、代码模板生成软件工具包客户端代码。其中主要过程为:软件工具包接口定义模块提供添加属性方法即所有编程语言都需要的通用信息例如:自动生成代码输出路径、sdk版本、产品名称、产品版本、模型包路径、包路径等;获取接口通用信息的同时再添加编程语言的特性组装成不同语言版软件工具包生成器所需要的属性;通过各语言个性实现模块生成不同语言的模板。下面结合图7,对各个模块的交互过程进行说明:
[0153]
步骤0、用户动作模块接收用户在预设界面上触发生成软件包的操作。
[0154]
步骤1、对外服务模块查询录入元数据。
[0155]
将录入的数据写入数据库中,查询总共有哪些接口,包含哪些参数。
[0156]
步骤2、对外服务模块触发软件工具包生成。
[0157]
根据对象模型、请求响应模型、接口模型及元数据等生成软件包的源码。
[0158]
步骤2中包含步骤2.1-步骤2.2,其中;
[0159]
步骤2.1、对外服务模块汇总接口信息和用户录入参数。
[0160]
步骤2.2、对外服务模块将配置及元数据模块返回的配置参数及接口数据传送给
生成器模块。其中,步骤2.2包括步骤2.2.1-步骤2.2.6,如下:
[0161]
步骤2.2.1、生成器模块添加属性接口。
[0162]
生成器模块添加属性接口,用于存放通用信息,如java中的一些集合数据类型需要导入第三方软件包,则将导包所需的包路径通过属性接口存放在通用信息中。
[0163]
步骤2.2.2、生成器模块处理属性。
[0164]
生成器模块处理通过属性接口存储的通用信息,如包路径等。
[0165]
步骤2.2.3、生成器模块处理模型数据。其中,步骤2.2.3包括步骤2.2.3.1-2.2.3.2,如下:
[0166]
步骤2.2.3.1、生成器模块处理对象模型接口。
[0167]
步骤2.2.3.1包括步骤2.2.3.1.1,其中;
[0168]
步骤2.2.3.1.1、软件工具包接口定义模块处理模型通用实现。
[0169]
步骤2.2.3.1.1包括步骤2.2.3.1.1.1-2.2.3.1.1.2,其中;
[0170]
步骤2.2.3.1.1.1、通用实现模块处理模型通用实现。
[0171]
步骤2.2.3.1.1.2、各语言个性实现模块处理模型个性实现。
[0172]
各语言个性实现模块根据语言类型不同适配到的各语言生成器模块中方法,生成各语言版本的软件工具包。
[0173]
步骤2.2.3.2、生成器模块处理包逻辑。
[0174]
步骤2.2.3.2包括步骤2.2.3.2.1,其中;
[0175]
步骤2.2.3.2.1、软件工具包接口定义模块处理导包逻辑接口。
[0176]
获取包路径并进行导包。
[0177]
步骤2.2.3.2.1包括2.2.3.2.1.1-步骤2.2.3.2.1.2,其中;
[0178]
步骤2.2.3.2.1.1、通用实现模块处理导包逻辑通用实现。
[0179]
步骤2.2.3.2.1.2、各语言个性实现模块处理导包逻辑个性实现。
[0180]
步骤2.2.4、生成器模块处理应用程序编程接口模型。
[0181]
生成的客户端包含产品下的所有接口方法,该接口方法集成了2.2.3所生成的对象模型。
[0182]
步骤2.2.4包括步骤2.2.4.1,其中;
[0183]
步骤2.2.4.1、软件工具包接口定义用于生成生成器接口。
[0184]
步骤2.2.4.1包括步骤2.2.4.1.1-步骤2.2.4.1.2,其中;
[0185]
步骤2.2.4.1.1、各语言个性实现模块用于生成软件工具包接口通用实现。
[0186]
步骤2.2.4.1.2、通用实现模块用于生成接口个性实现。
[0187]
步骤2.2.5、生成器模块用于软件工具包模型数据与模板映射。
[0188]
将生成的应用程序编程接口模型、对象模型和请求响应模型中的数据映射到预设的模板中。
[0189]
步骤2.2.6、生成器模块开始写文件。
[0190]
生成器模块将软件工具包模型数据和模板映射后,开始往模板中写入相关数据。
[0191]
步骤3、对外服务模块进行打包。
[0192]
对外服务模块将源码文件编译打包为可执行文件打包并放入公用仓库,以使用户调用访问。
[0193]
在图7中,软件工具包接口定义模块为接口模块,只定义程序方法,不包含具体实现,用于实现不同产品的软件工具包生成流程中的抽象共性部分。具体实现由通用实现模块和各语言个性实现模块实现;也即由通用实现模块和各语言个性实现模块,实现不同产品的软件工具包生成流程中的独立特性部分。
[0194]
本发明实施例还提供了一种软件工具包的生成方法,具体步骤如下。
[0195]
s1、对导入的接口描述文件进行解析,获取解析后的接口元数据信息。
[0196]
s2、对解析后的接口元数据信息进行分类聚合处理,适配软件包入参数据结构,其中包含聚合对象模型数据、接口模型数据、请求模型数据。
[0197]
s3、生成软件包源代码:调用软件包生成器主函数,同时传入准备好的对象模型数据、接口模型数据、请求模型数据作为生成器参数。
[0198]
在本发明的一些实施例中,s3由s3.1至s3.6实现,具体步骤如下。
[0199]
s3.1、用户录入参数设置作为代码生成器的配置参数。其中产品名称、产品版本、编程语言这三个参数为用户选择录入,其它参数如模型包路径、接口包路径、软件包版本号等参数为程序默认设置或根据规则自动计算。
[0200]
s3.2、允许客户端调用代码生成器设置个性化参数传入软件包生成器,代码生成器定义“添加属性接口”,它的默认实现由“通用实现”模块进行处理,自定义参数由各语言自定义实现(实际编程语言可以是java、python、go,这里将各编程语言自定义实现统称为编程语言个性化代码生成器)模块进行特殊处理,以通用模块管理通用信息、各语言模块管理对应语言的特性信息的组合方式来实现代码生成器多语言的灵活扩展。
[0201]
s3.3、针对面向对象语言生成对象模型,其中通过统一抽象接口对不同编程语言生成器策略进行适配,可根据语言类型不同适配到的各语言生成器模块中方法,同时内置通用处理模块处理不同语言通用生成逻辑。
[0202]
在本发明的一些实施例中,s3.3由s3.3.1至s3.3.2实现,具体步骤如下。
[0203]
s3.3.1、处理对象模型属性,包含类名称、类属性、属性类型定义、类方法等。该过程执行生成模型方法对对象模型进行处理,根据入参元数据判断各个对象模型下属性类型,类型又分为基础类型和复杂类型,由于各类编程语言对数据基础类型定义不尽相同,因此采用依赖oas标准定义类型映射各语言数据类型的方式进行适配,适配逻辑下沉到各语言生成器中由各语言自定义生成器负责实现。
[0204]
s3.3.2、设置对象模型引入包,依据类属性字段类型不同动态的计算对象模型文件需要引入的通用包,如在java中字段类型是集合,需要引入java.util.list包,而基础类型则不需要导包,而python一般情况下对于字段数据类型是不需要导包的,但当遇到python2与python3数据类型兼容问题时就需要导入six模块处理诸如字符串和字节数组不兼容问题,是否导包逻辑同样通过软件工具包抽象接口作为统一入口交由各语言个性实现模块具体实现。
[0205]
s3.4、生成产品目录下所有接口的调用客户端模型,以产品为维度进行聚合封装,定义了客户端请求各要素,即接口名称、请求类型、请求位置、请求参数、响应参数等,还包含接口调用的代码示例,方便开发者集成到自己的应用中。
[0206]
s3.5、模型数据与代码模板映射,生成具体代码文件。
[0207]
在本发明的一些实施例中,将生成的对象模型数据、请求模型数据、接口模型数据
和接口统一存放至字典中,从程序包中资源文件中获取编程语言。对于模板文件,再使用模板编译器渲染模板生成具体代码文件,代码模板渲染引擎采用轻量级模板引擎mustache。
[0208]
s3.6、代码文件写入磁盘。
[0209]
在本发明的一些实施例中,将生成的代码文件按照产品目录存储,即一个产品对于一个文件夹,文件夹内为产品开放接口的软件包代码。同时提供将源码自动推送预设仓库的能力,自动生成的代码由代码库管理员审核并合入代码仓库。
[0210]
s4、源码编译打包:生成源码文件编译打包。
[0211]
在本发明的一些实施例中,将源码文件编译打包为可执行文件,例如,java源代码编译打包为xxx.jar文件,python源码,不需要编译,直接打包为xxx.tar.gz文件。
[0212]
可以理解的是,在本发明的实施例中,对导入的待调用服务的接口描述文件进行解析,获取预设数据类型的接口元数据模型来对应用程序编程接口进行管理,不依赖接入产品源码、不限产品侧编程语言,降低了产品侧接入的限制条件与难度;用户录入参数设置作为代码生成器的配置参数使得云上应用只需填入少量参数就能自动生成统一标准的软件工具包,同时提供操作管理台所见即所得,易用性更高。同时将接口路径信息和外部调用路径进行绑定,利用绑定后的接口元数据模型和预设代码模板,生成软件工具包,集成自身公有云平台网关路由等能力,提高了软件工具包生成的灵活性和便利性。
[0213]
本发明实施例提供一种软件工具包的生成装置,如图8所示,图8为本发明实施例提供的一种软件工具包的生成装置的结构示意图,该装置包括:获取单元801、确定单元802和生成单元803;其中,
[0214]
所述获取单元801,用于对待调用服务的接口描述文件进行解析,获取预设数据类型的接口元数据模型;所述接口元数据模型包括接口调用信息和接口路径信息;
[0215]
所述确定单元802,用于将所述接口路径信息和外部调用路径进行绑定,确定绑定后的接口元数据模型;所述外部调用路径用于所述第二设备访问所述待调用服务的软件接口;
[0216]
所述生成单元803,用于从预设应用界面接收录入参数,并基于所述绑定后的接口元数据模型、所述录入参数与预设代码模板,生成软件工具包;所述软件工具包用于配置在所述第二设备上,以使所述第二设备通过所述软件工具包,调用所述待调用服务。
[0217]
在本发明的一些实施例中,所述获取单元801,还用于响应于预设应用界面上的导入操作,获取所述导入操作导入的接口描述文件;及,从至少一种解析工具中,确定目标解析工具;并利用所述目标解析工具对所述接口描述文件进行解析,得到至少一个元数据;以及,利用所述预设数据类型组织所述至少一个元数据,得到所述元数据模型。
[0218]
在本发明的一些实施例中,所述确定单元802,还用于获取所述第一设备的外部网关路由,作为所述外部调用路径;以及,将所述外部调用路径与所述接口路径信息进行关系映射,确定绑定后的接口元数据模型。
[0219]
在本发明的一些实施例中,所述生成单元803,还用于对所述绑定后的接口元数据模型进行数据内容整合,得到至少一个第一模型数据;所述至少一个第一模型数据包含对象模型数据、接口模型数据和请求响应模型数据;及,基于所述至少一个第一模型数据与所述预设代码模板,生成工具包源码;以及,基于所述工具包源码,生成所述软件工具包。
[0220]
在本发明的一些实施例中,所述生成单元803,还用于通过接收用户操作输入的录
入参数,得到至少一个配置参数;以及,根据所述至少一个配置参数、所述至少一个第一模型数据和所述预设代码模板,生成工具包源码。
[0221]
在本发明的一些实施例中,所述生成单元803,还用于基于所述第一数据类型,在所述代码模板中确定对应的第一代码模板;及,基于预设的数据类型映射关系,对所述至少一个第一模型数据进行数据类型转换,得到至少一个第一数据类型的第一模型;所述数据类型映射关系包含所述预设数据类型与至少一种数据类型之间的映射关系;所述至少一种数据类型包含所述第一数据类型;所述第一模型包含由所述对象模型数据得到的对象模型、由所述接口模型数据得到的接口模型与由所述请求响应模型数据得到请求响应模型中的至少一个。
[0222]
在本发明的一些实施例中,所述软件工具包的生成装置还包括转换单元804,所述转换单元804,用于根据所述第一数据类型,在统一抽象接口中匹配得到第一抽象方法;所述统一抽象接口包含至少一种数据类型对应的至少一种抽象方法;以及,利用所述第一抽象方法,对所述至少一个第一模型数据进行数据类型转换,得到所述至少一个第一模型;所述第一抽象方法中定义并实现了所述预设数据类型到所述第一数据类型的数据类型映射关系。
[0223]
在本发明的一些实施例中,所述转换单元804,还用于通过所述统一抽象接口,传入数据类型转换的通用参数;以及,利用所述第一抽象方法,结合所述通用参数,对至少一个第一模型数据进行数据类型转换,得到所述至少一个第一模型。
[0224]
在本发明的一些实施例中,所述转换单元804,还用于在第一模型数据包含嵌套数据的情况下,对所述嵌套数据进行至少一次递归解析,通过每次递归解析得到所述预设数据类型的初始模型层数据;以,根据所述数据类型映射关系,将所述初始模型层数据转换为所述第一数据类型的目标模型层数据,直至对最后一层嵌套数据解析完成,对每个目标模型层数据按照嵌套关系进行组装,得到转换后的嵌套数据;以及,基于所述转换后的嵌套数据得到第一模型。
[0225]
在本发明的一些实施例中,所述转换单元804,还用于若所述第一数据类型为复合数据类型,则利用所述第一抽象方法,导入所述复合数据类型对应的库文件;以及,基于所述库文件对第一模型数据进行数据类型转换,得到第一模型。
[0226]
在本发明的一些实施例中,所述转换单元804,还用于将所述至少一个第一模型写入所述第一代码模板,得到所述第一代码;及,对所述第一代码进行渲染,得到源码文件,并生成所述源码文件对应的源码描述信息;以及,结合所述源码描述信息,对所述源码文件进行封装,得到所述工具包源码。
[0227]
在本发明的一些实施例中,所述转换单元804,还用于从所述预设应用界面,接收输入的所述录入参数;及利用所述目标解析工具,根据所述录入参数中指定的接口信息对所述接口描述文件进行解析,得到所述接口信息对应的所述至少一个接口数据;所述至少一个接口数据对应至少一种接口处理类型;以及,根据所述至少一种接口处理类型,对所述至少一个接口数据进行聚合处理,得到所述至少一个元数据。
[0228]
在本发明的一些实施例中,所述源码描述信息包括以下至少一项:模型包路径、接口包路径和工具包版本号。
[0229]
在本发明的一些实施例中,所述转换单元804,还用于将所述工具包源码进行编译
和打包,得到所述软件工具包。
[0230]
在本发明的一些实施例中,所述软件工具包的生成装置还包括保存单元805、推送单元806;所述保存单元805,用于将所述源码文件与所述待调用服务保存在同一目录下;所述推送单元806,用于将所述源码文件推送至预设代码仓库,以通过所述预设代码仓库对所述源码文件进行管理。
[0231]
可以理解的是,在上述装置实现方案中,对待调用服务的接口描述文件进行解析,获取预设数据类型的接口元数据模型;接口元数据模型包括接口调用信息和接口路径信息;将接口路径信息和外部调用路径进行绑定,确定绑定后的接口元数据模型;外部调用路径用于通过外部路径访问待调用服务的软件接口;基于绑定后的接口元数据模型与预设代码模板,生成软件工具包;软件工具包用于配置在第二设备上,以使第二设备通过软件工具包,调用待调用服务。在本发明实施例中,对导入的待调用服务的接口描述文件进行解析,获取预设数据类型的接口元数据模型来对应用程序编程接口进行管理,不依赖接入产品源码、不限产品侧编程语言,降低了产品侧接入的限制条件与难度;同时将接口路径信息和外部调用路径进行绑定,利用绑定后的接口元数据模型和预设代码模板,生成软件工具包,集成自身公有云平台网关路由等能力,提高了软件工具包生成的灵活性和便利性。
[0232]
基于上述实施例的方法,本发明实施例提供的一种结构示意图,如图9所示,图9为本发明实施例提供的一种第一设备的结构示意图,包括:处理器901和存储器902;存储器902存储处理器901可执行的一个或者多个程序,当一个或者多个程序被执行时,通过处理器901执行如前所述实施例对应的一种软件工具包的生成装置。
[0233]
本发明实施例提供了一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现所述的软件工具包的生成方法。
[0234]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0235]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0236]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0237]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0238]
以上所述,仅为本发明较佳实施例而已,并非用于限定本发明的保护范围。

技术特征:
1.一种软件工具包的生成方法,其特征在于,应用于第一设备;所述第一设备与第二设备路由连接,包括:对待调用服务的接口描述文件进行解析,获取预设数据类型的接口元数据模型;所述接口元数据模型包括接口调用信息和接口路径信息;将所述接口路径信息和外部调用路径进行绑定,确定绑定后的接口元数据模型;所述外部调用路径用于所述第二设备访问所述待调用服务的软件接口;从预设应用界面接收录入参数,并基于所述绑定后的接口元数据模型、所述录入参数与预设代码模板,生成软件工具包;所述软件工具包用于配置在所述第二设备上,以使所述第二设备通过所述软件工具包,调用所述待调用服务。2.根据权利要求1所述的方法,其特征在于,所述对待调用服务的接口描述文件进行解析,获取预设数据类型的接口元数据模型,包括:响应于预设应用界面上的导入操作,获取所述导入操作导入的接口描述文件;从至少一种解析工具中,确定目标解析工具;并利用所述目标解析工具对所述接口描述文件进行解析,得到至少一个元数据;利用所述预设数据类型组织所述至少一个元数据,得到所述元数据模型。3.根据权利要求1所述的方法,其特征在于,所述将所述接口路径信息和外部调用路径进行绑定,确定绑定后的接口元数据模型,包括:获取所述第一设备的外部网关路由,作为所述外部调用路径;将所述外部调用路径与所述接口路径信息进行关系映射,确定绑定后的接口元数据模型。4.根据权利要求1所述的方法,其特征在于,所述从预设应用界面接收录入参数,并基于所述绑定后的接口元数据模型、所述录入参数与预设代码模板,生成软件工具包,包括:对所述绑定后的接口元数据模型进行数据内容整合,得到至少一个第一模型数据;所述至少一个第一模型数据包含对象模型数据、接口模型数据和请求响应模型数据;根据所述录入参数指定的第一数据类型,对所述至少一个第一模型数据进行数据类型转换,得到第一数据类型的至少一个第一模型;基于所述至少一个第一模型与所述预设代码模板,生成工具包源码;基于所述工具包源码,生成所述软件工具包。5.根据权利要求4所述的方法,其特征在于,所述根据所述录入参数指定的第一数据类型,对所述至少一个第一模型数据进行数据类型转换,得到第一数据类型的至少一个第一模型,包括:基于所述第一数据类型,在所述代码模板中确定对应的第一代码模板;基于预设的数据类型映射关系,对所述至少一个第一模型数据进行数据类型转换,得到第一数据类型的所述至少一个第一模型;所述数据类型映射关系包含所述预设数据类型与至少一种数据类型之间的映射关系;所述至少一种数据类型包含所述第一数据类型;所述第一模型包含由所述对象模型数据得到的对象模型、由所述接口模型数据得到的接口模型与由所述请求响应模型数据得到请求响应模型中的至少一个。6.根据权利要求5所述的方法,其特征在于,所述基于预设的数据类型映射关系,对所述至少一个第一模型数据进行数据类型转换,得到第一数据类型的所述至少一个第一模
型,包括:根据所述第一数据类型,在统一抽象接口中匹配得到第一抽象方法;所述统一抽象接口包含至少一种数据类型对应的至少一种抽象方法;利用所述第一抽象方法,对所述至少一个第一模型数据进行数据类型转换,得到所述至少一个第一模型;所述第一抽象方法中定义并实现了所述预设数据类型到所述第一数据类型的数据类型映射关系;其中,所述利用所述第一抽象方法,对所述至少一个第一模型数据进行数据类型转换,得到所述至少一个第一模型,包括:通过所述统一抽象接口,传入数据类型转换的通用参数;利用所述第一抽象方法,结合所述通用参数,对至少一个第一模型数据进行数据类型转换,得到所述至少一个第一模型;其中,所述利用所述第一抽象方法,对所述至少一个第一模型数据进行数据类型转换,得到所述至少一个第一模型,所述方法还包括:若所述第一数据类型为复合数据类型,则利用所述第一抽象方法,导入所述复合数据类型对应的库文件;基于所述库文件对第一模型数据进行数据类型转换,得到第一模型。7.根据权利要求5或6所述的方法,其特征在于,所述基于预设的数据类型映射关系,对所述至少一个第一模型数据进行数据类型转换,得到第一数据类型的所述至少一个第一模型,包括:在第一模型数据包含嵌套数据的情况下,对所述嵌套数据进行至少一次递归解析,通过每次递归解析得到所述预设数据类型的初始模型层数据;根据所述数据类型映射关系,将所述初始模型层数据转换为所述第一数据类型的目标模型层数据,直至对最后一层嵌套数据解析完成,对每个目标模型层数据按照嵌套关系进行组装,得到转换后的嵌套数据;基于所述转换后的嵌套数据得到第一模型。8.根据权利要求4所述的方法,其特征在于,所述基于所述至少一个第一模型与所述预设代码模板,生成工具包源码,包括:将所述至少一个第一模型写入所述第一代码模板,得到所述第一代码;对所述第一代码进行渲染,得到源码文件,并生成所述源码文件对应的源码描述信息;所述源码描述信息包括以下至少一项:模型包路径、接口包路径和工具包版本号;结合所述源码描述信息,对所述源码文件进行封装,得到所述工具包源码。9.根据权利要求2所述的方法,其特征在于,所述对待调用服务的接口描述文件进行解析,获取预设数据类型的接口元数据模型之前,所述方法还包括:从所述预设应用界面,接收输入的所述录入参数;所述利用所述目标解析工具对所述接口描述文件进行解析,得到至少一个元数据,包括:利用所述目标解析工具,根据所述录入参数中指定的接口信息对所述接口描述文件进行解析,得到所述接口信息对应的所述至少一个接口数据;所述至少一个接口数据对应至少一种接口处理类型;
根据所述至少一种接口处理类型,对所述至少一个接口数据进行聚合处理,得到所述至少一个元数据。10.一种软件工具包的生成装置,应用于第一设备,所述第一设备与第二设备路由连接,其特征在于,所述装置包括:获取单元、确定单元和生成单元;其中,所述获取单元,用于对待调用服务的接口描述文件进行解析,获取预设数据类型的接口元数据模型;所述接口元数据模型包括接口调用信息和接口路径信息;所述确定单元,用于将所述接口路径信息和外部调用路径进行绑定,确定绑定后的接口元数据模型;所述外部调用路径用于所述第二设备访问所述待调用服务的软件接口;所述生成单元,用于从预设应用界面接收录入参数,并基于所述绑定后的接口元数据模型、所述录入参数与预设代码模板,生成软件工具包;所述软件工具包用于配置在所述第二设备上,以使所述第二设备通过所述软件工具包,调用所述待调用服务。11.一种第一设备,其特征在于,包括:存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1-9任一项所述的软件工具包的生成方法。12.一种计算机可读存储介质,其特征在于,所述存储介质存储有可执行指令,当所述可执行指令被执行时,用于引起处理器执行如权利要求1-9任一项所述的软件工具包的生成方法。

技术总结
本发明实施例公开了一种软件工具包的生成方法、装置及计算机可读存储介质,该方法包括:对待调用服务的接口描述文件进行解析,获取预设数据类型的接口元数据模型;接口元数据模型包括接口调用信息和接口路径信息;将接口路径信息和外部调用路径进行绑定,确定绑定后的接口元数据模型;外部调用路径用于第二设备访问待调用服务的软件接口;从预设应用界面接收录入参数,并基于绑定后的接口元数据模型、录入参数与预设代码模板,生成软件工具包;软件工具包用于配置在第二设备上,以使第二设备通过软件工具包,调用待调用服务。通过本发明,提高了生成软件工具包的灵活性和效率。提高了生成软件工具包的灵活性和效率。提高了生成软件工具包的灵活性和效率。


技术研发人员:杨培军
受保护的技术使用者:中国移动通信集团有限公司
技术研发日:2022.08.02
技术公布日:2023/9/23
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐