生成软件开发工具包的方法、装置、存储介质及电子设备与流程

文档序号:30590272发布日期:2022-07-01 19:26阅读:90来源:国知局
生成软件开发工具包的方法、装置、存储介质及电子设备与流程

1.本公开涉及互联网技术领域,具体地,涉及一种生成软件开发工具包的方法、装置、存储介质及电子设备。


背景技术:

2.随着互联网技术的发展,人工智能、大数据、云计算等技术层出不穷。目前,api(application programming interface,应用程序接口)开发者通常通过互联网开放平台开放具体服务,依托开放平台,实现服务能力共享,以节约第三方开发效率。为保证各个服务调用更标准化、规范化,调用接口通常以sdk(software developmentkit,软件开发工具包)形式提供。
3.相关技术中,为了减少开发人员的工作量,可以从xml(extensible markup language,可扩展标记语言)中提取信息并生成特定sdk,但是,这种方法只能针对xml格式的数据自动生成sdk,在生成sdk时,需要开发人员创建对应的xml文件,从而导致生成sdk的效率比较低。


技术实现要素:

4.为了解决上述问题,本公开提供一种生成软件开发工具包的方法、装置、存储介质及电子设备。
5.第一方面,本公开提供一种生成软件开发工具包的方法,所述方法包括:从数据库中获取预先存储的目标服务的参数信息;根据所述参数信息,按照预设参数模板生成目标参数文件;根据所述目标参数文件,通过预设软件开发工具包sdk模板引擎,生成所述目标服务对应的目标sdk。
6.可选地,所述参数信息包括所述目标服务对应的认证方式;所述根据所述参数信息,按照预设参数模板生成目标参数文件包括:根据所述目标服务对应的认证方式,通过预设参数模板关联关系,获取所述目标服务对应的预设参数模板,所述预设参数模板关联关系包括不同的认证方式和所述预设参数模板的对应关系;按照所述预设参数模板对应的格式,将所述参数信息添加至所述预设参数模板中,得到所述目标参数文件。
7.可选地,所述目标参数文件包括所述目标服务对应的开发语言;所述根据所述目标参数文件,通过预设sdk模板引擎,生成所述目标服务对应的目标sdk包括:根据所述目标服务对应的开发语言,确定所述目标服务对应的sdk版本;根据所述sdk版本和所述目标参数文件,通过所述预设sdk模板引擎生成所述目标服务对应的目标sdk。
8.可选地,在所述从数据库中获取预先存储的目标服务的参数信息前,所述方法还包括:周期性获取服务器中存储的当前sdk的生成时间以及所述数据库中存储的所述参数信息的更新时间;确定所述生成时间与所述更新时间之间的时间差值;在所述时间差值大于或等于预设差值阈值的情况下输出更新指令,以使sdk开发者根据所述更新指令触发生成指令;所述从数据库中获取预先存储的目标服务的参数信息包括:在接收到所述生成指
令后,从所述数据库中获取预先存储的目标服务的参数信息。
9.可选地,所述方法还包括:获取所述当前sdk与所述目标sdk之间的差异数据;根据所述差异数据生成补丁文件;将所述补丁文件发送至所述服务器,以使所述服务器根据所述补丁文件将所述当前sdk更新为所述目标sdk。
10.第二方面,本公开提供一种生成软件开发工具包的装置,所述装置包括:参数信息获取模块,用于从数据库中获取预先存储的目标服务的参数信息;参数文件生成模块,用于根据所述参数信息,按照预设参数模板生成目标参数文件;sdk生成模块,用于根据所述目标参数文件,通过预设软件开发工具包sdk模板引擎,生成所述目标服务对应的目标sdk。
11.可选地,所述参数信息包括所述目标服务对应的认证方式;所述参数文件生成模块具体用于:根据所述目标服务对应的认证方式,通过预设参数模板关联关系,获取所述目标服务对应的预设参数模板,所述预设参数模板关联关系包括不同的认证方式和所述预设参数模板的对应关系;按照所述预设参数模板对应的格式,将所述参数信息添加至所述预设参数模板中,得到所述目标参数文件。
12.可选地,所述目标参数文件包括所述目标服务对应的开发语言;所述sdk生成模块具体用于:根据所述目标服务对应的开发语言,确定所述目标服务对应的sdk版本;根据所述sdk版本和所述目标参数文件,通过所述预设sdk模板引擎生成所述目标服务对应的目标sdk。
13.可选地,所述装置还包括:时间获取模块,用于周期性获取服务器中存储的当前sdk的生成时间以及数据库中存储的所述参数信息的更新时间;时间差确定模块,用于确定所述生成时间与所述更新时间之间的时间差值;输出模块,用于在所述时间差值大于或等于预设差值阈值的情况下,输出更新指令,以使sdk开发者根据所述更新指令触发生成指令;所述参数信息获取模块还用于:在接收到所述生成指令后,从所述数据库中获取预先存储的目标服务的参数信息。
14.可选地,所述装置还包括:差异数据获取模块,用于获取所述当前sdk与所述目标sdk之间的差异数据;补丁生成模块,用于根据所述差异数据生成补丁文件;补丁发送模块,用于将所述补丁文件发送至所述服务器,以使所述服务器根据所述补丁文件将所述当前sdk更新为所述目标sdk。
15.第三方面,本公开提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面所述方法的步骤。
16.第四方面,本公开提供一种电子设备,包括:存储器,其上存储有计算机程序;处理器,用于执行所述存储器中的所述计算机程序,以实现本公开第一方面所述方法的步骤。
17.通过上述技术方案,通过从数据库中获取预先存储的目标服务的参数信息;根据所述参数信息,按照预设参数模板生成目标参数文件;根据所述目标参数文件,通过预设软件开发工具包sdk模板引擎,生成所述目标服务对应的目标sdk。这样,可以根据数据库中存储的参数信息自动生成sdk,从而提高了生成sdk的效率。
18.本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
19.附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具
体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
20.图1是根据一示例性实施例示出的一种生成软件开发工具包的方法的流程图;
21.图2是根据一示例性实施例示出的另一种生成软件开发工具包的方法的流程图;
22.图3是根据一示例性实施例示出的一种生成软件开发工具包的装置的结构示意图;
23.图4是根据一示例性实施例示出的第二种生成软件开发工具包的装置的结构示意图;
24.图5是根据一示例性实施例示出的第三种生成软件开发工具包的装置的结构示意图;
25.图6是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
26.以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
27.首先,对本公开的应用场景进行说明。目前,api开发者通常通过互联网开放平台开放具体服务,依托开放平台,实现服务能力共享,如图像处理类、自然语言处理类、信息安全类服务,以节约第三方开发效率。开放平台通常采用微服务架构,以更好地保障各个服务的高性能运行。为保证各个服务调用更标准化、规范化,调用接口通常以sdk形式提供,服务发布者以及第三方用户无需自行开发调用接口,减少了第三方用户调用服务的难度、复杂度,满足第三方业务快速发展的需求。
28.随着开放平台规模越来越庞大以及承载服务数量的日益增加,依靠软件开发人员自行开发各个服务的sdk工作量大幅度提高,其中各个服务之间开发的重复性工作占大部分比重,开发周期变长,开发成本显著提高,并且高强度的开发会增加sdk代码的质量风险。每次服务更新迭代时,开发人员都需要重新修改sdk的代码,每次修改都会产生潜在的风险,并且耗时耗力,重复性劳动较多,导致开发效率低下。相关技术中,可以从xml文件中提取信息并生成特定sdk,但是,这种方法只能针对xml格式的数据自动生成sdk,在生成sdk时,需要开发人员创建对应的xml文件,导致生成sdk的效率比较低。
29.为了解决上述存在的问题,本公开提供一种生成软件开发工具包的方法、装置、存储介质及电子设备,可以从数据库中获取存储的目标服务的参数信息,并根据该参数信息,通过sdk模板引擎生成该目标服务对应的目标sdk,这样,可以根据数据库中存储的参数信息自动生成sdk,从而提高了生成sdk的效率。
30.下面结合具体实施例对本公开进行说明。
31.图1是根据一示例性实施例示出的一种生成软件开发工具包的方法的流程图,该方法可以应用于开放平台,如图1所示,该方法包括:
32.s101、从数据库中获取预先存储的目标服务的参数信息。
33.其中,该数据库可以是mysql,也可以是oracle,还可以是sql server,本公开对此不作限定。该参数信息可以包括目标服务的访问地址、访问参数、响应参数、传输协议、认证方式、开发语言等,上述参数信息包括的内容只是举例说明,本公开对此不作限定。
34.需要说明的是,在需要生成sdk时,api开发者或sdk开发者可以通过客户端网页输
入该目标服务对应的参数信息,并将该参数信息存储在该数据库中;在需要更新sdk时,api开发者可以获取根据该更新的sdk对应的目标服务,从数据库中获取该目标服务对应的历史参数信息,之后,可以根据更新需求,修改该历史参数信息,并将修改后的参数信息存储在该数据库中。另外,在存储该参数信息时,客户端可以对该参数信息进行检查,确定该参数信息是否符合规范,例如,访问地址中是否包括特殊字符,在确定该参数信息符合规范的情况下,将该参数信息存储在该数据库中。
35.在本步骤中,在确定需要生成该目标服务对应的目标sdk的情况下,可以先获取该目标服务对应的存储路径,根据该存储路径从该数据库中获取该目标服务的参数信息。
36.s102、根据该参数信息,按照预设参数模板生成目标参数文件。
37.其中,该预设参数模板可以是json模板,也可以是其它类型的模板,本公开对此不作限定。
38.在本步骤中,在获取该目标服务的参数信息后,可以按照该预设参数模板的格式,将该参数信息添加至该预设参数模板中,得到该目标参数文件。
39.s103、根据该目标参数文件,通过预设sdk模板引擎,生成该目标服务对应的目标sdk。
40.其中,该预设sdk模板引擎可以针对不同的认证方式,生成多种开发语言对应的sdk。
41.在本步骤中,在生成该目标参数文件后,可以根据该目标服务对应的认证方式和开发语音,通过该预设sdk模板引擎生成该目标服务对应的目标sdk。
42.采用上述方法,可以从数据库中获取存储的目标服务的参数信息,并根据该参数信息,通过sdk模板引擎生成该目标服务对应的目标sdk,这样,可以根据数据库中存储的参数信息自动生成sdk,从而提高了生成sdk的效率。
43.图2是根据一示例性实施例示出的另一种生成软件开发工具包的方法的流程图,如图2所示,该方法包括:
44.s201、周期性获取服务器中存储的当前sdk的生成时间以及数据库中存储的该参数信息的更新时间。
45.其中,该服务器用于存储sdk,第三方用户可以通过该服务器获取该目标sdk。
46.在本步骤中,为了避免服务器中存储的sdk被sdk开发者频繁更新,影响用户体验,可以每隔一段时间更新一次,因此,可以周期性获取服务器中存储的当前sdk的生成时间,以及数据库中存储的该目标服务的参数信息的更新时间。其中,获取周期可以根据sdk的类型确定,不同类型的sdk可以设置不同的获取周期,示例地,该获取周期可以是1星期,也可以是1天,还可以是3小时,本公开对此不作限定。
47.s202、确定该生成时间与该更新时间之间的时间差值。
48.s203、在该时间差值大于或等于预设差值阈值的情况下,输出更新指令。
49.其中,该预设差值阈值可以根据该目标服务的更新频率确定,示例地,针对更新频率要求较高的目标服务,可以设置较小的预设差值阈值,针对更新频率要求较高的目标服务,可以设置较大的预设差值阈值,本公开对此不作限定。
50.在本步骤中,在确定该时间差值大于或等于该预设差值阈值的情况下,表示该目标sdk满足更新频率,可以将该服务器中的当前sdk更新为该目标sdk,在确定该时间差值小
于该预设差值阈值的情况下,表示该目标sdk不满足更新频率,无需将该服务器中的当前sdk更新为该目标sdk。
51.进一步地,在确定需要将该服务器中的当前sdk更新为该目标sdk的情况下,可以输出更新指令。在该目标sdk的开发者检测到该更新指令后,可以通过客户端界面的触发按钮触发生成指令。
52.s204、在接收到生成指令后,从数据库中获取预先存储的目标服务的参数信息。
53.其中,该数据库可以是mysql,也可以是oracle,还可以是sql server等,本公开对此不作限定。该参数信息可以包括目标服务的访问地址、访问参数、响应参数、传输协议、认证方式、开发语言等,上述参数信息包括的内容只是举例说明,本公开对此不作限定。
54.需要说明的是,在需要生成sdk时,api开发者可以通过客户端网页输入该目标服务对应的参数信息,并将该参数信息存储在该数据库中;在需要更新sdk时,api开发者可以获取根据该更新的sdk对应的目标服务,从数据库中获取该目标服务对应的历史参数信息,之后,可以根据更新需求,修改该历史参数信息,并将修改后的参数信息存储在该数据库中。另外,在存储该参数信息时,客户端可以对该参数信息进行检查,确定该参数信息是否符合规范,例如,访问地址中是否包括特殊字符,在确定该参数信息符合规范的情况下,将该参数信息存储在该数据库中。
55.s205、根据该目标服务对应的认证方式,通过预设参数模板关联关系,获取该目标服务对应的预设参数模板。
56.其中,该预设参数模板关联关系包括不同的认证方式和该预设参数模板的对应关系,该认证方式可以包括basic auth、jwt、oauth2等,不同的认证方式可以对应不同的访问方式;该预设参数模板可以是json模板,也可以是其它类型的模板,本公开对此不作限定。
57.在本步骤中,在获取该目标服务的参数信息后,可以获取该预设参数模板关联关系,根据该参数信息中的认证方式,确定该目标服务对应的预设参数模板。
58.s206、按照该预设参数模板对应的格式,将该参数信息添加至该预设参数模板中,得到该目标参数文件。
59.在本步骤中,在获取该目标服务对应的预设参数模板后,可以从该参数信息中获取该预设参数模板需要添加的目标参数信息,之后,可以按照该预设参数模板的格式,将该目标参数信息添加至该预设参数模板中,在该预设参数模板中的每一项都添加完成后,得到该目标参数文件。
60.需要说明的是,在得到该目标参数文件后,可以将该目标参数文件存储在预设目录中,这样,api开发人员需要修改该目标服务的参数信息时,也可以直接从该预设目录中获取该目标服务对应的目标参数文件,在该目标参数文件中修改该参数信息对应的配置项,在该目标参数文件被修改后,可以根据该新的目标参数文件同步更新数据库中存储的该目标服务的参数信息。
61.s207、根据该目标服务对应的开发语言,确定该目标服务对应的sdk版本。
62.其中,该开发语言可以包括c、python、java、php、javascript等,本公开对此不作限定。
63.在本步骤中,针对不同的开发语言,最终生成的sdk程序包也不同,因此,在得到该目标参数文件后,可以根据该目标参数文件中的配置信息,确定该目标服务对应的开发语
言。之后,可以通过预设版本关联关系确定开发语言对应的sdk版本,该预设版本关联关系可以包括不同的开发语言和该sdk版本的对应的关系。
64.s208、根据该sdk版本和该目标参数文件,通过该预设sdk模板引擎生成该目标服务对应的目标sdk。
65.在本步骤中,在确定该sdk版本后,可以获取该目标参数文件,并根据该目标参数文件确定该目标服务的认证方式,之后,可以根据该sdk版本、该认证方式以及该目标参数文件,通过该预设sdk模板引擎生成该目标服务对应的目标sdk。
66.需要说明的是,在生成该目标sdk后,可以根据该目标服务对应的开发语言,对该目标sdk进行打包,示例地,若该开发语言为java,则可以将该目标sdk打包为jar包。
67.s209、获取该当前sdk与该目标sdk之间的差异数据。
68.s210、根据该差异数据生成补丁文件。
69.s211、将该补丁文件发送至该服务器。
70.在本步骤中,在将该补丁文件发送至该服务器后,该服务器可以根据该补丁文件将该当前sdk更新为该目标sdk。这样,无需将整个sdk文件发送至该服务器,只需发送补丁文件即可,从而可以减少数据传输量,提高sdk更新的效率。
71.需要说明的是,为了降低多用户下载时的下载压力,可以基于微服务架构,在微服务集群的多个节点中共享sdk文件。当用户的下载压力较大时,可以增加sdk下载服务实例,通过检测单服务器的带宽和sdk的大小,确定同一时间的最优并发数,通过nginx将用户的下载请求均衡分配至不同的微服务实例,这样,可以提高sdk的下载速度,从而提高用户体验。
72.采用上述方法,在根据服务器中存储的当前sdk的生成时间和数据库中存储的参数信息的更新时间,确定该目标sdk满足更新需求后,可以根据目标服务对应的认证方式、开发语言、参数信息,生成该目标服务对应的目标sdk,这样,可以根据数据库中存储的参数信息自动生成sdk,从而提高了生成sdk的效率;另外,可以根据服务器中存储的当前sdk的生成时间和数据库中存储的参数信息的更新时间,确定是否将该服务器中的当前sdk更新为该目标sdk,这样,可以避免该服务器中的sdk被频繁更新,影响用户体验,进一步地,在需要更新该服务器中的sdk时,只需要将补丁文件发送至该服务器,可以减少数据传输量,提高sdk更新的效率,并且节省带宽资源。
73.图3是根据一示例性实施例示出的一种生成软件开发工具包的装置的结构示意图,如图3所示,该装置可以包括:
74.参数信息获取模块301,用于从数据库中获取预先存储的目标服务的参数信息;
75.参数文件生成模块302,用于根据该参数信息,按照预设参数模板生成目标参数文件;
76.sdk生成模块303,用于根据该目标参数文件,通过预设软件开发工具包sdk模板引擎,生成该目标服务对应的目标sdk。
77.可选地,该参数信息包括该目标服务对应的认证方式;该参数文件生成模块302具体用于:
78.根据该目标服务对应的认证方式,通过预设参数模板关联关系,获取该目标服务对应的预设参数模板,该预设参数模板关联关系包括不同的认证方式和该预设参数模板的
对应关系;
79.按照该预设参数模板对应的格式,将该参数信息添加至该预设参数模板中,得到该目标参数文件。
80.可选地,该目标参数文件包括该目标服务对应的开发语言;该sdk生成模块303具体用于:
81.根据该目标服务对应的开发语言,确定该目标服务对应的sdk版本;
82.根据该sdk版本和该目标参数文件,通过该预设sdk模板引擎生成该目标服务对应的目标sdk。
83.可选地,图4是根据一示例性实施例示出的第二种生成软件开发工具包的装置的结构示意图,如图4所示,该装置还包括:
84.时间获取模块304,用于周期性获取服务器中存储的当前sdk的生成时间以及数据库中存储的该参数信息的更新时间;
85.时间差确定模块305,用于确定该生成时间与该更新时间之间的时间差值;
86.输出模块306,用于在该时间差值大于或等于预设差值阈值的情况下,输出更新指令,以使该sdk开发者根据所述更新指令触发生成指令;
87.所述参数信息获取模块301还用于:在接收到所述生成指令后,从所述数据库中获取预先存储的目标服务的参数信息。
88.可选地,图5是根据一示例性实施例示出的第三种生成软件开发工具包的装置的结构示意图,如图5所示,该装置还包括:
89.差异数据获取模块307,用于获取该当前sdk与该目标sdk之间的差异数据;
90.补丁生成模块308,用于根据该差异数据生成补丁文件;
91.补丁发送模块309,用于将该补丁文件发送至该服务器,以使该服务器根据该补丁文件将该当前sdk更新为该目标sdk。
92.通过上述装置,可以从数据库中获取存储的目标服务的参数信息,并根据该参数信息,通过sdk模板引擎生成该目标服务对应的目标sdk,这样,可以根据数据库中存储的参数信息自动生成sdk,从而提高了生成sdk的效率。
93.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
94.图6是根据一示例性实施例示出的一种电子设备600的框图。例如,电子设备600可以被提供为一服务器。参照图6,电子设备600包括处理器622,其数量可以为一个或多个,以及存储器632,用于存储可由处理器622执行的计算机程序。存储器632中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器622可以被配置为执行该计算机程序,以执行上述的生成软件开发工具包的方法。
95.另外,电子设备600还可以包括电源组件626和通信组件650,该电源组件626可以被配置为执行电子设备600的电源管理,该通信组件650可以被配置为实现电子设备600的通信,例如,有线或无线通信。此外,该电子设备600还可以包括输入/输出(i/o)接口658。电子设备600可以操作基于存储在存储器632的操作系统,例如windows server
tm
,mac os x
tm
,unix
tm
,linux
tm
等等。
96.在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该
程序指令被处理器执行时实现上述的生成软件开发工具包的方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器632,上述程序指令可由电子设备600的处理器622执行以完成上述的生成软件开发工具包的方法。
97.在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的生成软件开发工具包的方法的代码部分。
98.以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
99.此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1