CN117149162A - 一种sdk自动生成方法、装置、电子设备及存储介质 - Google Patents

一种sdk自动生成方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN117149162A
CN117149162A CN202311101258.6A CN202311101258A CN117149162A CN 117149162 A CN117149162 A CN 117149162A CN 202311101258 A CN202311101258 A CN 202311101258A CN 117149162 A CN117149162 A CN 117149162A
Authority
CN
China
Prior art keywords
code
interface
information
sdk
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311101258.6A
Other languages
English (en)
Inventor
赵冬雪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202311101258.6A priority Critical patent/CN117149162A/zh
Publication of CN117149162A publication Critical patent/CN117149162A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本说明书实施例公开了一种SDK自动生成方法、装置、电子设备及存储介质。该SDK自动生成方法包括获取应用程序接口的接口元信息,将接口元信息发布至目标开发环境;接着,在目标开发环境中调用SDK代码模板,同时基于接口元信息对SDK代码模板进行字段更新,以得到工具包代码;最后,更新工具包代码对应的配置文件的版本信息后,将工具包代码打包至目标路径。

Description

一种SDK自动生成方法、装置、电子设备及存储介质
技术领域
本说明书实施例属于计算机技术领域,特别的涉及一种SDK自动生成方法、装置、电子设备及存储介质。
背景技术
软件开发工具包(Software Development Kit,SDK)一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。
随着开放服务的快速发展,越来越多的应用程序接口被开发,开发者生成SDK的人工成本和出错率较高,整体研发效率较低。
发明内容
本说明书实施例提供了一种SDK自动生成方法、装置、电子设备及存储介质,其技术方案如下:
第一方面,本说明书实施例提供了一种SDK自动生成方法,包括:
获取应用程序接口的接口元信息,将所述接口元信息发布至目标开发环境;
在所述目标开发环境中调用SDK代码模板,并基于所述接口元信息对所述SDK代码模板进行字段更新,得到工具包代码;
更新所述工具包代码对应的配置文件的版本信息后,将所述工具包代码打包至目标路径,其中,所述目标路径基于所述配置文件确定。
第二方面,本说明书实施例提供了一种SDK自动生成装置,包括:
获取模块,用于获取应用程序接口的接口元信息,将所述接口元信息发布至目标开发环境;
调用模块,用于在所述目标开发环境中调用SDK代码模板,并基于所述接口元信息对所述SDK代码模板进行字段更新,得到工具包代码;
打包模块,用于更新所述工具包代码对应的配置文件的版本信息后,将所述工具包代码打包至目标路径,其中,所述目标路径基于所述配置文件确定。
第三方面,本说明书实施例还提供了一种电子设备,可包括:处理器和存储器;其中,存储器存储有计算机程序,计算机程序适于由处理器加载并执行上述的SDK自动生成方法步骤。
第四方面,本说明书实施例提供了一种计算机存储介质,计算机存储介质存储有多条指令,指令适于由处理器加载并执行上述的SDK自动生成方法步骤。
本说明书一些实施例提供的技术方案带来的有益效果至少包括:
在本说明书一个或多个实施例中,可以采用代码模板加模板引擎的形式,根据接口元信息自动生成代码,且能够自动对代码进行打包上传,可以不用人为进行代码的开发或更改,出错率较低,整体研发效率较高。
附图说明
为了更清楚地说明本说明书实施例中的技术方案,下面将对实施例中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例提供的一种SDK自动生成方法的系统架构示意图;
图2为本说明书实施例提供的一种SDK自动生成方法的整体流程图;
图3为本说明书实施例提供的又一种SDK自动生成方法的整体流程图;
图4为本说明书实施例提供的又一种SDK自动生成方法的整体流程图;
图5为本说明书实施例提供的一种SDK自动生成装置的结构示意图;
图6为本说明书实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述。
本说明书中的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
下面的描述提供了示例,并且不对权利要求书中阐述的范围、适用性或示例进行限制。可以在不脱离本说明书内容的范围的情况下,对描述的元素的功能和布置做出改变。各个示例可以适当省略、替代或添加各种过程或组件。例如所描述的方法可以以所描述的顺序不同的顺序来执行,并且可以添加、省略或组合各种步骤。此外,可以将关于一些示例描述的特征组合到其他示例中。
请参阅图1,图1示出了本说明书实施例提供的一种SDK自动生成方法的系统架构示意图。
如图1所示,该SDK自动生成方法的系统架构至少可以包括终端100和服务器200。
终端100包括但不限于智能手机、台式计算机、平板电脑、笔记本电脑、智能音箱、数字助理、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、智能可穿戴设备等类型的电子设备,也可以为运行于上述电子设备的软体,例如应用程序等。可选的,电子设备上运行的操作系统可以包括但不限于安卓系统、IOS系统、linux、windows等。可选地,终端100向用户提供SDK自动生成服务,终端100可以获取应用程序接口的接口元信息。
在一个可选的实施例中,服务器200可以为终端100提供后台服务,根据终端100发送的接口元信息,自动生成相应的SDK。具体的,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(ContentDelivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
此外,需要说明的是,图1所示的仅仅是本公开提供的一种系统,在实际应用中,还可以包括其他系统,例如可以包括更多的终端。
本说明书实施例中,上述终端100以及服务器200可以通过有线或无线通信方式进行直接或间接地连接,本公开在此不做限制。
接下来请参阅图2,图2示出了本说明书实施例提供的一种SDK自动生成方法的整体流程图,该SDK自动生成方法可以用于服务器中。
如图2所示,该SDK自动生成方法至少可以包括以下步骤:
步骤201、获取应用程序接口的接口元信息,将所述接口元信息发布至目标开发环境。
应用程序接口(Application Programming Interface,简称API)是一组定义了软件组件或系统之间交互的规范。它定义了如何通过预定义的方法、数据结构和协议与软件组件进行通信和交互。API可以被视为一种约定,它规定了调用者和被调用者之间的通信方式和数据格式。通过API,不同的软件组件、系统或服务可以相互连接和交互,实现功能的扩展和集成。
具体的,对于需要生成SDK的应用程序接口,服务器可以获取并录入该应用程序接口的接口元信息,接着,服务器可以将接口元信息发布到能够生成SDK的目标开发环境中,以进行自动生成SDK的流程操作。
其中,接口的元信息是指描述接口本身的信息,例如,接口元信息可以包括接口名称、方法签名、参数描述、返回值描述、访问权限、异常处理、版本信息、文档和示例等。这些元信息可以以不同的形式存在,例如注解、文档、描述性字符串等。
作为一种示例,日常发布流程中,一般可以遵循DEV-预发-线上的顺序,故在DEV阶段就需要进行调试。因此,可以在最开的阶段,即DEV环境中生成工具包代码。在其他实施例中,根据实际需要,目标开发环境还可以是TEST、SIT、PROD、PRE等其他开发环境。
作为本说明书实施例的一种可选,所述将所述接口元信息发布至目标开发环境,包括:
将所述接口元信息发送至预设的审批对象;
当接收到所述审批对象发送的确认指令后,将所述接口元信息发布至目标开发环境。
具体的,为了避免获取到的接口元信息不符合服务规范,进而导致后续生成的工具包代码出错,服务器会在获取到接口元信息后,可以将其发送至预先设置的审批对象。审批对象可以是服务负责人、技术负责人等审批人员对应的终端。审批人员可以在终端上接收到接口元信息后,对接口元信息是否符合规范进行审批。在审批通过后,审批对象会向服务器发送确认指令,只有审批通过后的接口元信息,服务器才会发送至目标开发环境中。
作为一种示例,服务规范可以包含接口编码的命名(例如必须是英文编码,没有出现中文)、接口信息定义应该包含哪些数据(例如,必须包含编码、名称、参数、错误码、负责人等信息)等。
步骤203、在所述目标开发环境中调用SDK代码模板,并基于所述接口元信息对所述SDK代码模板进行字段更新,得到工具包代码
具体的,服务器可以在目标开发环境中对预先设置好的SDK代码模板进行调用,根据目标开发环境和/或应用程序接口的不同,SDK代码模板具体可以是不同的代码模板。调用的SDK代码模板中可以包括接口元信息对应的代码字段,服务器可以根据发布至目标开发环境中的接口元信息对SDK代码模板中需要填充和/或更替的代码字段进行字段的更新。完成对SDK代码模板的字段更新后,目标开发环境中即完成了自动生成代码的流程,得到了工具包代码。
作为一种示例,SDK代码模板可以通过代码模板引擎进行配置。SDK代码模板可以包括java代码模板、python代码模板等。
作为一种示例,代码字段可以包括接口标识信息对应的接口标识字段、接口入参信息对应的接口入参字段、接口出参信息对应的接口出参字段、接口地址信息对应的接口地址字段、服务线信息对应的服务线字段、关联接口信息对应的关联接口字段等。
通过配置的接口元信息对SDK代码模板中的相关字段进行更新,可以在通用的工具代码生成模板的基础上快速自动生成各个应用程序接口对应的调用代码,整个过程由服务器自动实现,代码自动生成,降低了人工成本,提升了SDK生成效率。
步骤205、更新所述工具包代码对应的配置文件的版本信息后,将所述工具包代码打包至目标路径.
其中,所述目标路径基于所述配置文件确定。
具体的,服务器生成了工具包代码后,还可以对工具包代码的版本信息进行更新,以和应用程序接口的其他相关代码进行区分。在前述工具包代码的生成过程中,服务器还可以加载配置文件进行构建和上传,使最终生成的工具包代码与加载的配置文件相对应。软件工具包的版本信息可以维护在配置文件中,生成新的工具包代码的过程,可以看作是一次升级过程,因此,服务器还会更改更新工具包代码中配置文件的版本信息。此外,每个工具包代码在目标开发环境中生成后,服务器还需要对工具包代码进行打包,并将其上传至指定的路径位置。该路径位置也可以在配置文件的加载过程中写在配置文件内,服务器在更新版本信息后,会根据配置文件对应的目标路径对工具包代码进行打包和上传,完成本次SDK自动生成流程。其中,目标路径的具体路径位置可以是人工设置的,也可以是根据应用程序接口的不同而预先设置的,在其他实施例中,还可以是其他设置方式。
作为一种示例,配置文件可以是POM文件。POM文件是Maven项目中的ProjectObject Model(项目对象模型)文件。它是一个XML文件,用于描述和配置Maven项目的结构和依赖关系。POM文件包含了项目的基本信息,如项目的坐标(groupId、artifactId和version)、项目的依赖关系、构建配置、插件配置等。
在本说明书实施例中,服务器根据接口元信息在目标开发环境中自动生成代码,且能够根据配置文件的目标路径自动对代码进行打包上传,可以不用人为进行代码的开发或更改,出错率较低,整体研发效率较高。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
作为本说明书实施例的又一种可选,请参阅图3,图3示出了本说明书实施例提供的又一种SDK自动生成方法的整体流程图,该SDK自动生成方法可以用于服务器中。
如图3所示,该SDK自动生成方法至少可以包括以下步骤:
步骤301、获取应用程序接口的接口元信息,将所述接口元信息发布至目标开发环境。
具体的,步骤301可参阅步骤201,此处不再赘述。
作为本说明书实施例的一种可选,所述接口元信息包括接口描述信息、接口出入参数、请求报文、响应报文和错误码信息。
具体的,接口描述信息可以是定义接口需要包含的信息(如接口的英文编码,中文名称,接口类型,调用超时时间,负责人,地址等)。接口出入参数可以包括接口入参信息和接口出参信息。其中,接口出入参数可分为基础类型和复杂类型,基础类型可以涵盖:字符串类型、数值类型、时间类型、布尔类型等,复杂类型可以为上述基础类型的集合。
步骤303、确定所述应用程序接口的至少一种SDK代码模板。
具体的,应用程序接口可以根据自身类型的不同,包括至少一种程序开发语言对应的SDK代码模板。基于上述接口元信息对上述至少一种程序开发语言各自对应的SDK代码模板分别进行字段配置处理,可以生成应用程序接口对应的至少一种程序开发语言的工具包代码。
步骤305、在所述目标开发环境中基于velocity模板引擎调用各所述SDK代码模板。
具体的,Velocity是一个基于Java的模板引擎。在如今的MVC架构模式中,软件各个层次的功能更加独立,同时代码的相似度也更加高。所以需要寻找一种来减少软件开发人员重复劳动的方法,让程序员将更多的精力放在服务逻辑以及其他更加具有创造力的工作上。Velocity这个模板引擎就可以在一定程度上解决这个问题,可以按模板生成对应代码。
各SDK代码模板可以为预先根据用户的需求编写的代码模板,例如,可以确定Java代码模板,然后服务器获取接口元信息后,采用Velocity模板引擎,即可生成软件项目对应的服务后端Java代码。对于不同的应用程序接口对应的不同软件项目,SDK代码模板对应的程序开发语言也不同。服务后端可以采用Java代码编写,其他端还可以采用python等其他代码。其中,Java是面向对象的编程语言,主要负责后端数据的处理的工作。
步骤307、基于所述接口元信息对所述SDK代码模板进行字段更新,得到工具包代码。
具体的,步骤307可参阅步骤202,此处不再赘述。
作为本说明书实施例的一种可选,所述基于所述接口元信息对所述SDK代码模板进行字段更新,得到工具包代码,包括:
将所述SDK代码模板中的接口入参字段更新为所述接口入参信息;
将所述SDK代码模板中的接口出参字段更新为所述接口出参信息。
具体的,SDK代码模板中需要输入更新的字段可以是接口入参字段和接口出参字段。服务器可以从接口元信息中确定出接口入参信息和接口出参信息,并将接口入参信息更新至SDK代码模板中的接口入参字段内,将接口出参信息更新至SDK代码模板中的接口出参字段内。在其他实施例中,SDK代码模板中需要更新的字段还可以是其他字段。
步骤309、确定所述工具包代码对应的至少一个注解,将所述注解添加至所述工具包代码中。
具体的,服务器还可以对工具包代码添加注解,这样在后期运行工具包代码时,可以根据注解来快速定位到代码的指定模块,进而快速执行某一功能。
作为一种示例,以移动端APP举例,可以在工具包代码的每一页面添加一个注解,移动端App启动时会扫描这个注解。因为移动端App中有source-gen模块会生成一个键值对A,key就是注解里面的字符串,value即是页面。移动端App中Build_runner模块会自动根据注解生成可运行代码B。当其他页面需要调用这个页面,只需要一行代码并传入注解里面的字符串,即可运行代码B并在键值对A中找到指定页面,跳转到指定页面。
作为一种示例,以服务后端java举例,服务后端Java代码运行主要靠SpringBoot框架的自动注解功能,各类代码通过注解后,SpringBoot框架可以自动加载到指定模块。最终Java代码会生成带权限,带用户权限的Web的API(Application ProgrammingInterface,应用程序接口)和App的API。
步骤311、更新所述工具包代码对应的配置文件的版本信息后,将所述工具包代码打包至目标路径。
具体的,步骤311可参阅步骤203,此处不再赘述。
在本说明书实施例中,服务器通过SDK代码模板以及Velocity模板引擎,确定软件项目对应的代码,生成的代码框架统一,开发人员可以对生成的代码进行修改,无需开发人员自己去搭建框架,大大减少了代码编写量,减小了软件项目的研发难度,提高了软件项目的研发效率。此外,通过对代码的注解,还可以在代码较为复杂时进一步提高后期运行代码具体功能的效率。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
作为本说明书实施例的又一种可选,请参阅图4,图4示出了本说明书实施例提供的又一种SDK自动生成方法的整体流程图,该SDK自动生成方法可以用于服务器中。
如图4所示,该SDK自动生成方法至少可以包括以下步骤:
步骤401、获取应用程序接口的接口元信息,将所述接口元信息发布至目标开发环境。
具体的,步骤401可参阅步骤201,此处不再赘述。
步骤403、在所述目标开发环境中调用SDK代码模板,并基于所述接口元信息对所述SDK代码模板进行字段更新,得到工具包代码。
具体的,步骤403可参阅步骤203,此处不再赘述。
步骤405、更新所述工具包代码对应的配置文件的版本信息。
具体的,步骤405可参阅步骤205,此处不再赘述。
作为本说明书实施例的一种可选,所述更新所述工具包代码对应的配置文件的版本信息,包括:
基于所述接口元信息的参数种类变化确定所述工具包代码的版本兼容性,并确定所述工具包代码对应的配置文件的版本信息;
针对版本兼容的所述工具包代码,更新所述版本信息中目标字段的第一目标位数;
针对版本不兼容的所述工具包代码,更新所述版本信息中目标字段的第二目标位数。
具体的,为了保证后续客户端在引用不同服务的jar包出现版本冲突,服务器可以对配置文件的版本信息进行修改。配置文件的版本信息的命名规则可以是由多段不同含义的信息组成,其中一个字段可以为代表兼容性的字段,该字段可以由阿拉伯数字和小数点分割的形式表示(例如1.0.0)。不同的数字位数表明不同的含义,例如第一位数字表明版本兼容,第二位数字表明版本不兼容。在确定版本信息是否兼容后,服务器可以对应修改对应位数字的大小,数字大小的变更方式可以是逐一递加。其中,版本兼容性与否的判断,可以通过接口元信息包含的参数种类的数量来确定,如果与原来的参数种类相比,参数种类发生了变化,则说明增加了新的类型的参数,此时便可能会导致版本不兼容。
此外,版本信息的其余字段还可以用来表示日期、发行版本等。其中,发行版本可以指SNAPSHOT版本和RELEASE版本,Snapshot快照仓库用于保存开发过程中的不稳定SNAPSHOT版本,Release发行仓库则用来保存稳定的RELEASE版本。
作为一种示例,假设目前的版本信息表示为1.0.0-20230202-SNAPSHOT,且第一段中第一位数表明兼容,第三位数表明不兼容。若在两天后生成新的代码,且新代码不兼容,则更新后的版本信息为1.0.1-20230204-SNAPSHOT。
步骤407、基于所述配置文件确定所述应用程序接口在maven仓库对应的目标路径。
Maven是一个开源的构建工具,用于管理Java项目的构建过程、依赖管理和项目信息管理。它提供了一种声明式的方式来定义项目的结构和构建过程,并通过插件机制实现了自动化的构建、测试和部署。Maven的核心概念是Project Object Model(POM),它是一个XML文件,描述了项目的基本信息、依赖关系、构建配置等。通过POM文件,Maven可以自动下载所需的依赖库,并根据定义的构建配置进行编译、测试、打包和部署。
具体的,服务器可以通过POM配置文件确定出应用程序接口在maven仓库中对应的目标路径,后续将根据该目标路径来对工具包代码进行打包,以实现将jar包打包至指定位置的目的。
步骤409、调用maven命令将所述工具包代码打包至所述目标路径。
具体的,服务器在确定了目标路径后,通过在maven仓库中调用maven命令,可以实现将工具包代码打包至目标路径的目的。
作为一种示例,可以调用org.apache.maven.shared.invoker命令,通过提供正确的命令参数和POM文件路径,可以按需执行所需的Maven命令,进而将代码打包至输入的路径中。
步骤411、从所述maven仓库中确定jar包,并反向解析所述jar包,得到所述工具包代码。
具体的,maven仓库中的代码数据可以被打包为jar包,jar包是一个包含了Java字节码、资源文件和元数据的归档文件。它可以将多个Java类文件、配置文件、图像、音频等相关资源打包成一个单独的文件。
前述生成的工具包代码是用在发布流程中的第一个环节中,由于后续发布环节也需要使用到该代码,故工具包代码可以以jar包的形式存储在maven仓库内。当进行后续生产发布时,服务器可以在仓库中拉取jar包,并对其反向解析,即可重新得到之前生成的工具包代码。
步骤413、将所述工具包代码发布至代码库。
具体的,服务器通过反向解析jar包,重新生成稳定的工具包代码后,会将代码同步到代码库中,以完成生产发布环节。
在本说明书实施例中,服务器在根据接口元信息的参数种类而对配置文件的版本信息进行更新后,会将根据maven仓库对应的目标路径对工具包代码进行打包。在后续生产发布环节中,服务器可以从maven仓库中拉取到jar包并反向解析jar包,快速得到之前生成的工具包代码,并将其发布至代码库中,提高了SDK发布的效率。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
接下来请参阅图5,图5示出了本说明书实施例提供的一种SDK自动生成装置的结构示意图。需要说明的是,图5所示的SDK自动生成装置,用于执行本申请图1所示实施例的方法,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请图5所示的实施例。
如图5所示,该SDK自动生成装置至少可以包括:
获取模块501,用于获取应用程序接口的接口元信息,将所述接口元信息发布至目标开发环境;
调用模块502,用于在所述目标开发环境中调用SDK代码模板,并基于所述接口元信息对所述SDK代码模板进行字段更新,得到工具包代码;
打包模块503,用于更新所述工具包代码对应的配置文件的版本信息后,将所述工具包代码打包至目标路径,其中,所述目标路径基于所述配置文件确定。
在一些可能的实施例中,获取模块501具体用于:
将所述接口元信息发送至预设的审批对象;
当接收到所述审批对象发送的确认指令后,将所述接口元信息发布至目标开发环境。
在一些可能的实施例中,调用模块502具体还用于:
确定所述应用程序接口的至少一种SDK代码模板;
在所述目标开发环境中基于velocity模板引擎调用各所述SDK代码模板。
在一些可能的实施例中,所述接口元信息包括接口描述信息、接口出入参数、请求报文、响应报文和错误码信息。
在一些可能的实施例中,接口出入参数包括接口入参信息和接口出参信息;
调用模块502具体用于:
将所述SDK代码模板中的接口入参字段更新为所述接口入参信息;
将所述SDK代码模板中的接口出参字段更新为所述接口出参信息。
在一些可能的实施例中,调用模块502具体还用于:
确定所述工具包代码对应的至少一个注解,将所述注解添加至所述工具包代码中。
在一些可能的实施例中,打包模块503具体用于:
基于所述接口元信息的参数种类变化确定所述工具包代码的版本兼容性,并确定所述工具包代码对应的配置文件的版本信息;
针对版本兼容的所述工具包代码,更新所述版本信息中目标字段的第一目标位数;
针对版本不兼容的所述工具包代码,更新所述版本信息中目标字段的第二目标位数。
在一些可能的实施例中,打包模块503具体还用于:
基于所述配置文件确定所述应用程序接口在maven仓库对应的目标路径;
调用maven命令将所述工具包代码打包至所述目标路径。
在一些可能的实施例中,装置还包括:
解析模块,用于从所述maven仓库中确定jar包,并反向解析所述jar包,得到所述工具包代码;
发布模块,用于将所述工具包代码发布至代码库。
本领域的技术人员可以清楚地了解到本申请实施例的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列(Field-ProgrammableGate Array,FPGA)、集成电路(Integrated Circuit,IC)等。
本申请实施例的各处理单元和/或模块,可通过实现本申请实施例所述的功能的模拟电路而实现,也可以通过执行本申请实施例所述的功能的软件而实现。
接下来请参阅图6,图6示出了本说明书实施例提供的一种电子设备的结构示意图。
如图6所示,该电子设备600可以包括:至少一个处理器601、至少一个网络接口604、用户接口603、存储器605以及至少一个通信总线602。
其中,通信总线602可用于实现上述各个组件的连接通信。
其中,用户接口603可以包括按键,可选用户接口还可以包括标准的有线接口、无线接口。
其中,网络接口604可以但不局限于包括蓝牙模块、NFC模块、Wi-Fi模块等。
其中,处理器601可以包括一个或者多个处理核心。处理器601利用各种接口和线路连接整个电子设备600内的各个部分,通过运行或执行存储在存储器605内的指令、程序、代码集或指令集,以及调用存储在存储器605内的数据,执行电子设备600的各种功能和处理数据。可选的,处理器601可以采用DSP、FPGA、PLA中的至少一种硬件形式来实现。处理器601可集成CPU、GPU和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器601中,单独通过一块芯片进行实现。
其中,存储器605可以包括RAM,也可以包括ROM。可选的,该存储器605包括非瞬时性计算机可读介质。存储器605可用于存储指令、程序、代码、代码集或指令集。存储器605可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器605可选的还可以是至少一个位于远离前述处理器601的存储装置。如图6所示,作为一种计算机存储介质的存储器605中可以包括操作系统、网络通信模块、用户接口模块以及程序指令。
具体的,处理器601可以用于调用存储器605中存储的SDK自动生成应用程序,并具体执行以下操作:
获取应用程序接口的接口元信息,将所述接口元信息发布至目标开发环境;
在所述目标开发环境中调用SDK代码模板,并基于所述接口元信息对所述SDK代码模板进行字段更新,得到工具包代码;
更新所述工具包代码对应的配置文件的版本信息后,将所述工具包代码打包至目标路径,其中,所述目标路径基于所述配置文件确定。
在一些可能的实施例中,所述将所述接口元信息发布至目标开发环境,包括:
将所述接口元信息发送至预设的审批对象;
当接收到所述审批对象发送的确认指令后,将所述接口元信息发布至目标开发环境。
在一些可能的实施例中,所述在所述目标开发环境中调用SDK代码模板,包括:
确定所述应用程序接口的至少一种SDK代码模板;
在所述目标开发环境中基于velocity模板引擎调用各所述SDK代码模板。
在一些可能的实施例中,所述接口元信息包括接口描述信息、接口出入参数、请求报文、响应报文和错误码信息。
在一些可能的实施例中,所述接口出入参数包括接口入参信息和接口出参信息;
所述基于所述接口元信息对所述SDK代码模板进行字段更新,得到工具包代码,包括:
将所述SDK代码模板中的接口入参字段更新为所述接口入参信息;
将所述SDK代码模板中的接口出参字段更新为所述接口出参信息。
在一些可能的实施例中,所述基于所述接口元信息对所述SDK代码模板进行字段更新,得到工具包代码之后,还包括:
确定所述工具包代码对应的至少一个注解,将所述注解添加至所述工具包代码中。
在一些可能的实施例中,所述更新所述工具包代码对应的配置文件的版本信息,包括:
基于所述接口元信息的参数种类变化确定所述工具包代码的版本兼容性,并确定所述工具包代码对应的配置文件的版本信息;
针对版本兼容的所述工具包代码,更新所述版本信息中目标字段的第一目标位数;
针对版本不兼容的所述工具包代码,更新所述版本信息中目标字段的第二目标位数。
在一些可能的实施例中,所述将所述工具包代码打包至目标路径,包括:
基于所述配置文件确定所述应用程序接口在maven仓库对应的目标路径;
调用maven命令将所述工具包代码打包至所述目标路径。
在一些可能的实施例中,所述方法还包括:
从所述maven仓库中确定jar包,并反向解析所述jar包,得到所述工具包代码;
将所述工具包代码发布至代码库。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC),或适合于存储指令和/或数据的任何类型的媒介或设备。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通进程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

Claims (20)

1.一种SDK自动生成方法,包括:
获取应用程序接口的接口元信息,将所述接口元信息发布至目标开发环境;
在所述目标开发环境中调用SDK代码模板,并基于所述接口元信息对所述SDK代码模板进行字段更新,得到工具包代码;
更新所述工具包代码对应的配置文件的版本信息后,将所述工具包代码打包至目标路径,其中,所述目标路径基于所述配置文件确定。
2.根据权利要求1所述的方法,所述将所述接口元信息发布至目标开发环境,包括:
将所述接口元信息发送至预设的审批对象;
当接收到所述审批对象发送的确认指令后,将所述接口元信息发布至目标开发环境。
3.根据权利要求1所述的方法,所述在所述目标开发环境中调用SDK代码模板,包括:
确定所述应用程序接口的至少一种SDK代码模板;
在所述目标开发环境中基于velocity模板引擎调用各所述SDK代码模板。
4.根据权利要求1所述的方法,所述接口元信息包括接口描述信息、接口出入参数、请求报文、响应报文和错误码信息。
5.根据权利要求4所述的方法,所述接口出入参数包括接口入参信息和接口出参信息;
所述基于所述接口元信息对所述SDK代码模板进行字段更新,得到工具包代码,包括:
将所述SDK代码模板中的接口入参字段更新为所述接口入参信息;
将所述SDK代码模板中的接口出参字段更新为所述接口出参信息。
6.根据权利要求1所述的方法,所述基于所述接口元信息对所述SDK代码模板进行字段更新,得到工具包代码之后,还包括:
确定所述工具包代码对应的至少一个注解,将所述注解添加至所述工具包代码中。
7.根据权利要求1所述的方法,所述更新所述工具包代码对应的配置文件的版本信息,包括:
基于所述接口元信息的参数种类变化确定所述工具包代码的版本兼容性,并确定所述工具包代码对应的配置文件的版本信息;
针对版本兼容的所述工具包代码,更新所述版本信息中目标字段的第一目标位数;
针对版本不兼容的所述工具包代码,更新所述版本信息中目标字段的第二目标位数。
8.根据权利要求1所述的方法,所述将所述工具包代码打包至目标路径,包括:
基于所述配置文件确定所述应用程序接口在maven仓库对应的目标路径;
调用maven命令将所述工具包代码打包至所述目标路径。
9.根据权利要求8所述的方法,所述方法还包括:
从所述maven仓库中确定jar包,并反向解析所述jar包,得到所述工具包代码;
将所述工具包代码发布至代码库。
10.一种SDK自动生成装置,包括:
获取模块,用于获取应用程序接口的接口元信息,将所述接口元信息发布至目标开发环境;
调用模块,用于在所述目标开发环境中调用SDK代码模板,并基于所述接口元信息对所述SDK代码模板进行字段更新,得到工具包代码;
打包模块,用于更新所述工具包代码对应的配置文件的版本信息后,将所述工具包代码打包至目标路径,其中,所述目标路径基于所述配置文件确定。
11.根据权利要求10所述的装置,所述获取模块具体用于:
将所述接口元信息发送至预设的审批对象;
当接收到所述审批对象发送的确认指令后,将所述接口元信息发布至目标开发环境。
12.根据权利要求10所述的装置,所述调用模块具体还用于:
确定所述应用程序接口的至少一种SDK代码模板;
在所述目标开发环境中基于velocity模板引擎调用各所述SDK代码模板。
13.根据权利要求10所述的装置,所述接口元信息包括接口描述信息、接口出入参数、请求报文、响应报文和错误码信息。
14.根据权利要求13所述的装置,所述接口出入参数包括接口入参信息和接口出参信息;
所述调用模块具体用于:
将所述SDK代码模板中的接口入参字段更新为所述接口入参信息;
将所述SDK代码模板中的接口出参字段更新为所述接口出参信息。
15.根据权利要求10所述的装置,所述调用模块具体还用于:
确定所述工具包代码对应的至少一个注解,将所述注解添加至所述工具包代码中。
16.根据权利要求10所述的装置,所述打包模块具体用于:
基于所述接口元信息的参数种类变化确定所述工具包代码的版本兼容性,并确定所述工具包代码对应的配置文件的版本信息;
针对版本兼容的所述工具包代码,更新所述版本信息中目标字段的第一目标位数;
针对版本不兼容的所述工具包代码,更新所述版本信息中目标字段的第二目标位数。
17.根据权利要求10所述的装置,所述打包模块具体还用于:
基于所述配置文件确定所述应用程序接口在maven仓库对应的目标路径;
调用maven命令将所述工具包代码打包至所述目标路径。
18.根据权利要求17所述的装置,所述装置还包括:
解析模块,用于从所述maven仓库中确定jar包,并反向解析所述jar包,得到所述工具包代码;
发布模块,用于将所述工具包代码发布至代码库。
19.一种电子设备,包括处理器以及存储器;
所述处理器与所述存储器相连;
所述存储器,用于存储可执行程序代码;
所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行如权利要求1-9任一项所述的方法。
20.一种计算机可读存储介质,其上存储有计算机程序,所述计算机可读存储介质中存储有指令,当所述指令在计算机或处理器上运行时,使得所述计算机或处理器执行如权利要求1-9任一项所述方法的步骤。
CN202311101258.6A 2023-08-29 2023-08-29 一种sdk自动生成方法、装置、电子设备及存储介质 Pending CN117149162A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311101258.6A CN117149162A (zh) 2023-08-29 2023-08-29 一种sdk自动生成方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311101258.6A CN117149162A (zh) 2023-08-29 2023-08-29 一种sdk自动生成方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN117149162A true CN117149162A (zh) 2023-12-01

Family

ID=88903854

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311101258.6A Pending CN117149162A (zh) 2023-08-29 2023-08-29 一种sdk自动生成方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117149162A (zh)

Similar Documents

Publication Publication Date Title
CN110825362B (zh) 低代码应用软件开发系统及方法
US11409949B2 (en) Mobile device resource provisioning system and method
Hashimi et al. Pro Android 3
CN110502222B (zh) 外发依赖内部基础库的aar方法、装置、介质和设备
CN108027722A (zh) 在编译和部署中动态更新应用
US11667033B2 (en) Systems and methods for robotic process automation
US11797273B2 (en) System and method for enhancing component based development models with auto-wiring
CN112860260B (zh) 一种在高校场景下基于web的跨平台应用构建工具及方法
US11537367B1 (en) Source code conversion from application program interface to policy document
CN112000334A (zh) 页面开发方法、装置、服务器及存储介质
US10452518B2 (en) Uploading tenant code to a multi-tenant system
CN115934093A (zh) 小程序跨端应用方法、相关装置及计算机存储介质
CN117149162A (zh) 一种sdk自动生成方法、装置、电子设备及存储介质
CN114860202A (zh) 项目运行方法、装置、服务器及存储介质
Ali Advanced IOS 4 Programming: Developing Mobile Applications for Apple IPhone, IPad, and IPod Touch
CN117093286B (zh) 插件生成方法、装置、设备及计算机可读存储介质
CN116991380B (zh) 一种应用程序的构建方法、装置、电子设备及存储介质
CN117056317B (zh) 数据处理方法、装置、设备及计算机可读存储介质
CN116107665B (zh) 工程项目配置方法、装置、终端和存储介质
CN112256326B (zh) 信息的处理方法、装置、设备及存储介质
Mahmoud Developing Middleware in Java EE 8: Build robust middleware solutions using the latest technologies and trends
Román García An enhanced SleuthKit GUI for digital forensics
CN117389567A (zh) 多端应用开发方法、装置、介质及设备
CN117195239A (zh) 微应用资源包生成方法、装置、计算机设备和存储介质
CN113986207A (zh) 一种软件架构生成、调用方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination