CN110362295A - 代码生成方法、装置、计算机装置及存储介质 - Google Patents

代码生成方法、装置、计算机装置及存储介质 Download PDF

Info

Publication number
CN110362295A
CN110362295A CN201910447659.4A CN201910447659A CN110362295A CN 110362295 A CN110362295 A CN 110362295A CN 201910447659 A CN201910447659 A CN 201910447659A CN 110362295 A CN110362295 A CN 110362295A
Authority
CN
China
Prior art keywords
interface
replaced
code
parameters
parameter value
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
CN201910447659.4A
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.)
OneConnect Smart Technology Co Ltd
Original Assignee
OneConnect Smart 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 OneConnect Smart Technology Co Ltd filed Critical OneConnect Smart Technology Co Ltd
Priority to CN201910447659.4A priority Critical patent/CN110362295A/zh
Publication of CN110362295A publication Critical patent/CN110362295A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented

Landscapes

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

Abstract

本发明提供一种代码生成方法,包括:获取接口代码模板以及接口文档;识别所述接口代码模板中的特殊字符,确定所述特殊字符标识的参数为待替换接口参数,其中,所述待替换接口参数为一个或多个;根据所述待替换接口参数的参数名在所述接口文档中查找与所述待替换接口参数对应的参数值,其中,每个待替换接口参数对应的参数值为一个或多个;复制所述接口代码模板,将复制的所述接口代码模板中所述待替换接口参数替换为与查找到的与所述待替换接口参数对应的参数值,得到接口代码。本发明还公开了一种代码生成装置、计算机装置和计算机可读存储介质。本发明可以提高代码生成的效率。

Description

代码生成方法、装置、计算机装置及存储介质
技术领域
本发明涉及软件技术领域,尤其涉及一种代码生成方法、装置、计算机装置及存储介质。
背景技术
在开发过程中,在不同的模块间进行数据传输时,需要编写接口代码。在编写接口代码时,通常先与接口的对接方约定接口规范以及接口字段,进而形成接口文档,最后依据接口文档进行编码。然而,当需要编写的接口较多时,编码所消耗的时间会较长,甚至无法保证接口代码的质量。
发明内容
鉴于以上内容,有必要提供一种代码生成方法、装置、计算机装置及存储介质,能够提高接口代码生成的效率。
本发明提供一种代码生成方法,所述方法包括:
获取接口代码模板以及接口文档;
识别所述接口代码模板中的特殊字符,确定所述特殊字符标识的参数为待替换接口参数,其中,所述待替换接口参数为一个或多个;
根据所述待替换接口参数的参数名在所述接口文档中查找与所述待替换接口参数对应的参数值,其中,每个待替换接口参数对应的参数值为一个或多个;
复制所述接口代码模板,将复制的所述接口代码模板中所述待替换接口参数替换为与查找到的与所述待替换接口参数对应的参数值,得到接口代码。
在本发明可选实施中,所述获取接口代码模板以及接口文档之后,所述方法还包括:
扫描所述接口代码模板;
判断所述接口代码模板是否包含接口名称和方法;
若是,判断所述接口名称和所述方法是否符合预设编码规范且所述方法的类型是否与所述方法的函数体的输出类型一致;
若所述接口名称和所述方法符合预设编码规范且所述方法的类型与所述方法的函数体的输出类型一致,执行所述识别所述接口代码模板中的特殊字符,确定所述特殊字符标识的参数为待替换接口参数的操作。
在本发明可选实施中,所述方法还包括:
若所述接口名称和所述方法不符合预设编码规范,发送所述接口代码模板不符合规范提醒,禁止调用所述接口代码模板生成代码;
若所述方法的类型与所述方法的函数体的输出类型不一致,发送所述接口代码模板存在函数异常提醒,禁止调用所述接口代码模板生成代码。
在本发明可选实施中,所述方法还包括:
检测所述接口文档中所述待替换接口参数对应的参数值是否存在变化;
若所述接口文档中所述待替换接口参数对应的参数值存在变化,确定所述参数值为所述接口代码中待更新参数值;
获取所述参数值在变化后的变更参数值;
将所述接口代码中待更新参数值更新为所述变更参数值。
在本发明可选实施例中,所述方法还包括:
检测所述接口代码模板中接口的信息是否存在变化,所述接口的信息包括接口引用的包、接口的类型、接口包含的变量的信息、接口包含的方法的信息之中的一项或多项;
若所述接口代码模板中接口的信息存在变化,获取变化前的第一信息以及变化后的第二信息;
在所述接口代码中将所述第一信息替换为所述第二信息。
在本发明可选实施例中,所述接口代码模板中同一作用的待替换接口参数的数量为一个。
在本发明可选实施例中,所述方法还包括:
若根据所述待替换接口参数的参数名在所述接口文档中未查找到与所述待替换接口参数对应的参数值,发送所述接口代码模板与所述接口文档不匹配的提醒消息。
本发明还提供一种代码生成装置,所述装置包括:
获取模块,用于获取接口代码模板以及接口文档;
确定模块,用于识别所述接口代码模板中的特殊字符,确定所述特殊字符标识的参数为待替换接口参数,其中,所述待替换接口参数为一个或多个;
查找模块,用于根据所述待替换接口参数的参数名在所述接口文档中查找与所述待替换接口参数对应的参数值,其中,每个待替换接口参数对应的参数值为一个或多个;
生成模块,用于复制所述接口代码模板,将复制的所述接口代码模板中所述待替换接口参数替换为与查找到的与所述待替换接口参数对应的参数值,得到接口代码。
在本发明可选实施例中,所述装置还包括检测模块,所述检测模块用于:
获取接口代码模板以及接口文档之后,扫描所述接口代码模板;
判断所述接口代码模板是否包含接口名称和方法;
若是,判断所述接口名称和所述方法是否符合预设编码规范且所述方法的类型是否与所述方法的函数体的输出类型一致;
若所述接口名称和所述方法符合预设编码规范,以及所述方法的类型与所述方法的函数体的输出类型一致,触发所述确定模块识别所述接口代码模板中的特殊字符,确定所述特殊字符标识的参数为待替换接口参数。
在本发明可选实施例中,所述装置还包括禁止模块,所述禁止模块用于:
若所述接口名称和所述方法不符合预设编码规范,发送所述接口代码模板不符合规范提醒,禁止调用所述接口代码模板生成代码;
若所述方法的类型与所述方法的函数体的输出类型不一致,发送所述接口代码模板存在函数异常提醒,禁止调用所述接口代码模板生成代码。
在本发明可选实施例中,所述装置还包括:第一更新模块,用于:
检测所述接口文档中所述待替换接口参数对应的参数值是否存在变化;
若所述接口文档中所述待替换接口参数对应的参数值存在变化,确定所述参数值为所述接口代码中待更新参数值;
获取所述参数值在变化后的变更参数值;
将所述接口代码中待更新参数值更新为所述变更参数值。
在本发明可选实施例中,所述装置还包括第二更新模块,用于:
检测所述接口代码模板中接口的信息是否存在变化,所述接口的信息包括接口引用的包、接口的类型、接口包含的变量的信息、接口包含的方法的信息之中的一项或多项;
若所述接口代码模板中接口的信息存在变化,获取变化前的第一信息以及变化后的第二信息;
在所述接口代码中将所述第一信息替换为所述第二信息。
在本发明可选实施例中,所述接口代码模板中同一作用的待替换接口参数的数量为一个。
在本发明可选实施例中,所述装置还包括:
提醒模块,用于若根据所述待替换接口参数的参数名在所述接口文档中未查找到与所述待替换接口参数对应的参数值,发送所述接口代码模板与所述接口文档不匹配的提醒消息。
本发明还提供一种计算机装置,所述计算机装置包括存储器及处理器,所述存储器用于存储至少一个指令,所述处理器用于执行所述至少一个指令以实现任意实施例中所述的代码生成方法。
本发明还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现任意实施例中所述的代码生成方法。
由以上技术方案看出,本发明通过获取接口代码模板以及接口文档;识别所述接口代码模板中的特殊字符,确定所述特殊字符标识的参数为待替换接口参数,其中,所述待替换接口参数为一个或多个;根据所述待替换接口参数的参数名在所述接口文档中查找与所述待替换接口参数对应的参数值,其中,每个待替换接口参数对应的参数值为一个或多个;复制所述接口代码模板,将复制的所述接口代码模板中所述待替换接口参数替换为与查找到的与所述待替换接口参数对应的参数值,得到接口代码。从而能够快速生成接口代码无需用户手动编写接口代码,提高接口代码生产的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例提供的一种代码生成方法的流程图;
图2是本发明实施例提供的一种代码生成装置的功能模块图;
图3是本发明实现代码生成方法的较佳实施例的计算机装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1所示,图1为本发明实施例提供的一种代码生成方法的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S11,获取接口代码模板以及接口文档。
本实施例可以生成一接口代码。接口在高级程序设计语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类若继承接口,则该类可以继承接口的抽象方法。
例如,以下为一个接口的声明的示例:
interface接口名称[extends其他的接口名]{
//声明变量
//抽象方法}
本实施例中,所述接口代码模板是用于生成接口代码的模板。例如,接口代码模板中包含接口类型、接口声明的变量等信息。
所述接口文档是对某一接口的描述信息,其中,接口文档中包含该接口的输入参数、输出参数、输入参数的类型、输出参数的类型、输入参数的描述、输出参数的描述、参数的长度等信息。
本实施例中,基于同一接口代码模板结合不同的接口文档可以生成不同的接口代码。
S12,识别所述接口代码模板中的特殊字符,确定所述特殊字符标识的参数为待替换接口参数,其中,所述待替换接口参数为一个或多个。
所述特殊字符为预设的特殊字符,例如,特殊字符为“$”。
本实施例中所述特殊字符标识的参数为特殊字符之后的参数。
例如,以下为一个接口代码模板的示例:
在上述接口代码模板中,识别到该接口代码模板中的“$”之后,确定“interfaceName”,“instruction”,“type”,“filedName”为待替换接口参数,这几个待替换接口参数分别标识:类名、说明、字段类型以及字段名称。
可选的,在本发明另一实施例中,所述获取接口代码模板以及接口文档之后,所述方法还包括:
扫描所述接口代码模板;
判断所述接口代码模板是否包含接口名称和方法;
若是,判断所述接口名称和所述方法是否符合预设编码规范且所述方法的类型是否与所述方法的函数体的输出类型一致;
若所述接口名称和所述方法符合预设编码规范,以及所述方法的类型与所述方法的函数体的输出类型一致,执行所述识别所述接口代码模板中的特殊字符,确定所述特殊字符标识的参数为待替换接口参数的操作。
可选的,在本发明另一实施例中,所述方法还包括:
若所述接口名称和所述方法不符合预设编码规范,发送所述接口代码模板不符合规范提醒,禁止调用所述接口代码模板生成代码;
若所述方法的类型与所述方法的函数体的输出类型不一致,发送所述接口代码模板存在函数异常提醒,禁止调用所述接口代码模板生成代码。
例如,若接口代码模板中函数为void类型的,表明该函数应当有返回值,若检测该函数内容包含返回值,则执行步骤S12,若检测该函数内容不包含返回值,即不包含return的输出参数,则确定该函数存在异常,禁止执行步骤S12。
在本实施例中,当接口代码模板不符合预设编码规范时,还可以向用户发送调整接口代码模板的消息。
在本实施例中,通过对接口代码模板进行检测,可以提高基于接口代码模板所生成的接口代码的质量。
S13,根据所述待替换接口参数的参数名在所述接口文档中查找与所述待替换接口参数对应的参数值,其中,每个待替换接口参数对应的参数值为一个或多个。
根据待替换接口参数的参数名在接口文档中查找与待替换接口参数对应的参数值包括:在接口文档中查找与待替换接口参数的参数名相同的参数名,确定接口文档中该参数名的参数值为该待替换接口参数对应的参数值,即确定接口文档中该参数名的一个或多个参数值为该待替换接口参数对应的一个或多个参数值。
例如,接口文档为excel文档,则查找与待替换接口参数的参数名相同的列,确定该列的参数值为待替换接口的参数名对应的参数值。
可选的,在本发明另一实施例中,所述方法还包括:
若根据所述待替换接口参数的参数名在所述接口文档中未查找到与所述待替换接口参数对应的参数值,发送所述接口代码模板与所述接口文档不匹配的提醒消息。
例如,接口代码模板中有输出参数的函数,但接口文档中却没有输出参数;或者是有参数值,却没有与该参数值对应的待替换接口参数,例如,在接口文档中有输出参数值,但是接口代码模板中函数的实现没有输出参数的语句。
通过本实施例,可以检测出存在待替换接口参数,却没有在接口文档中查找到与之匹配的参数值的情况,并进行预警提醒,避免因为匹配混乱导致的代码生成错误。
S14,复制所述接口代码模板,将复制的所述接口代码模板中所述待替换接口参数替换为与查找到的与所述待替换接口参数对应的参数值,得到接口代码。
例如,若接口代码模板中定义了一个输入参数,且在接口文档中存在与该输入参数对应的多个参数值,则将接口代码模板中定义的输入参数进行多次复制,将接口文档中每个参数值进行替换,得到生成的接口代码,该接口代码中包含多个输入参数值。
例如,上述接口代码模板示例中的待替换参数包括“$interfaceName”,“$instruction”,“type”,“filedName”,接口文档中与这几个待替换参数对应的参数值分别为:“AddNote”,“发起者的第三方用户id“,“String”,“platUserID”,且这几个参数值根据其说明,分别表示:类名、说明、类型、字段类型、字段名称。则生成的接口代码为:
表1为另一个接口文档中的参数值示例:
$interfaceName $instruction type filedName
AddNote 发起者的第三方用户id String platUserId
AddNote 当前所在的私聊房间ID String roomId
AddNote 发言人第三方用户id String speakerPlatUserId
AddNote 笔录内容 String content
表一
针对表一中的参数值,对待替换接口参数进行替换,生成的接口代码为:
本实施例中,替换参数值以后的接口代码即为生成的接口代码,可以看出,能够快速地根据接口文档中的4个参数值生成包括该4个参数值的代码。
可选的,本发明一实施例中,所述接口代码模板中同一作用的待替换接口参数的数量为一个。
所述同一作用是指作用相同的待替换接口参数,例如用于定义接口名称的待替换接口参数为一个、用于定义变量的待替换接口参数为一个。即在本实施例中,不存在重复作用的待替换接口参数,从而使得接口代码模板足够精简,并且在生成接口代码时,不需要复杂的匹配,能够快速生产包含任意数量出参与入参的接口代码。
可选的,在本发明一实施例中,所述方法还包括:
检测所述接口文档中所述待替换接口参数对应的参数值是否存在变化;
若所述接口文档中所述待替换接口参数对应的参数值存在变化,确定所述参数值为所述接口代码中待更新参数值;
获取所述参数值在变化后的变更参数值;
将所述接口代码中待更新参数值更新为所述变更参数值。
例如,待替换接口参数“filedName”对应的一个参数值原本为“roomId”,若变更为“roomID_1”,则将之前所生成的接口代码中的“roomId”变更为“roomID_1”。
在本发明另一实施例中,检测接口文档中的参数值是否有增加或减少,若存在减少,则将已生成的接口代码进行对应增加或减少。
通过本实施里,可以在快速生成代码之后,在接口文档中的参数值存在变化时相应地快速更新接口代码。
可选的,在本发明另一实施例中,所述方法还包括:
检测所述接口代码模板中接口的信息是否存在变化,所述接口的信息包括接口引用的包、接口的类型、接口包含的变量的信息、接口包含的方法的信息之中的一项或多项;
若所述接口代码模板中接口的信息存在变化,获取变化前的第一信息以及变化后的第二信息;
在所述接口代码中将所述第一信息替换为所述第二信息。
例如,初次生成接口代码时,接口代码模板中包含以下接口信息:“$interfaceName InputDTO extends BaseDTO”;若检测到接口代码模板调整为:“$interfaceName InputDTO extends BaseDTTD”,则表明接口代码模板中接口所继承的接口发生了变化,此时将基于该接口代码模板生成的接口代码进行调整,具体是将初次生成的接口代码中的接口所继承的接口“BaseDTO”替换为“BaseDTTD”。
通过本实施例,可以在接口代码模板中的接口的信息发生变化时,对基于该接口代码模板所生成的接口代码统一进行调整,提高代码修改的效率。
本发明提供的一种代码生成方法,获取接口代码模板以及接口文档;识别所述接口代码模板中的特殊字符,确定所述特殊字符标识的参数为待替换接口参数,其中,所述待替换接口参数为一个或多个;根据所述待替换接口参数的参数名在所述接口文档中查找与所述待替换接口参数对应的参数值,其中,每个待替换接口参数对应的参数值为一个或多个;复制所述接口代码模板,将复制的所述接口代码模板中所述待替换接口参数替换为与查找到的与所述待替换接口参数对应的参数值,得到接口代码。从而能够快速生成接口代码无需用户手动编写接口代码,提高接口代码生产的效率。
如图2所示,图2为本发明实施例提供的一种代码生成装置的功能模块图。所述代码生成装置包括获取模块210、确定模块220、查找模块230和生成模块240。本发明所称的模块是指一种能够被处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在计算机设备的存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
获取模块210,用于获取接口代码模板以及接口文档。
本实施例可以生成一接口代码。接口在高级程序设计语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类若继承接口,则该类可以继承接口的抽象方法。
例如,以下为一个接口的声明的示例:
interface接口名称[extends其他的接口名]{
//声明变量
//抽象方法}
本实施例中,所述接口代码模板是用于生成接口代码的模板。例如,接口代码模板中包含接口类型、接口声明的变量等信息。
所述接口文档是对某一接口的描述信息,其中,接口文档中包含该接口的输入参数、输出参数、输入参数的类型、输出参数的类型、输入参数的描述、输出参数的描述、参数的长度等信息。
本实施例中,基于同一接口代码模板结合不同的接口文档可以生成不同的接口代码。
确定模块220,用于识别所述接口代码模板中的特殊字符,确定所述特殊字符标识的参数为待替换接口参数,其中,所述待替换接口参数为一个或多个。
所述特殊字符为预设的特殊字符,例如,特殊字符为“$”。
本实施例中所述特殊字符标识的参数为特殊字符之后的参数。
例如,以下为一个接口代码模板的示例:
在上述接口代码模板中,识别到该接口代码模板中的“$”之后,确定“interfaceName”,“instruction”,“type”,“filedName”为待替换接口参数,这几个待替换接口参数分别标识:类名、说明、字段类型以及字段名称。
可选的,在本发明另一实施例中,所述装置还包括检测模块,用于:
获取接口代码模板以及接口文档之后,扫描所述接口代码模板;
判断所述接口代码模板是否包含接口名称和方法;
若是,判断所述接口名称和所述方法是否符合预设编码规范且所述方法的类型是否与所述方法的函数体的输出类型一致;
若所述接口名称和所述方法符合预设编码规范,以及所述方法的类型与所述方法的函数体的输出类型一致,执行所述识别所述接口代码模板中的特殊字符,确定所述特殊字符标识的参数为待替换接口参数的操作。
可选的,在本发明另一实施例中,所述装置还包括禁止模块,用于:
若所述接口名称和所述方法不符合预设编码规范,发送所述接口代码模板不符合规范提醒,禁止调用所述接口代码模板生成代码;
若所述方法的类型与所述方法的函数体的输出类型不一致,发送所述接口代码模板存在函数异常提醒,禁止调用所述接口代码模板生成代码。
例如,若接口代码模板中函数为void类型的,表明该函数应当有返回值,若检测该函数内容包含返回值,则触发确定模块识别所述接口代码模板中的特殊字符,确定所述特殊字符标识的参数为待替换接口参数,若检测该函数内容不包含返回值,即不包含return的输出参数,则确定该函数存在异常,禁止触发确定模块识别所述接口代码模板中的特殊字符,确定所述特殊字符标识的参数为待替换接口参数。
在本实施例中,当接口代码模板不符合预设编码规范时,还可以向用户发送调整接口代码模板的消息。
在本实施例中,通过对接口代码模板进行检测,可以提高基于接口代码模板所生成的接口代码的质量。
查找模块230,用于,根据所述待替换接口参数的参数名在所述接口文档中查找与所述待替换接口参数对应的参数值,其中,每个待替换接口参数对应的参数值为一个或多个。
根据待替换接口参数的参数名在接口文档中查找与待替换接口参数对应的参数值包括:在接口文档中查找与待替换接口参数的参数名相同的参数名,确定接口文档中该参数名的参数值为该待替换接口参数对应的参数值,即确定接口文档中该参数名的一个或多个参数值为该待替换接口参数对应的一个或多个参数值。
例如,接口文档为excel文档,则查找与待替换接口参数的参数名相同的列,确定该列的参数值为待替换接口的参数名对应的参数值。
可选的,在本发明另一实施例中,所述装置还包括提醒模块,用于:
若根据所述待替换接口参数的参数名在所述接口文档中未查找到与所述待替换接口参数对应的参数值,发送所述接口代码模板与所述接口文档不匹配的提醒消息。
例如,接口代码模板中有输出参数的函数,但接口文档中却没有输出参数;或者是有参数值,却没有与该参数值对应的待替换接口参数,例如,在接口文档中有输出参数值,但是接口代码模板中函数的实现没有输出参数的语句。
通过本实施例,可以检测出存在待替换接口参数,却没有在接口文档中查找到与之匹配的参数值的情况,并进行预警提醒,避免因为匹配混乱导致的代码生成错误。
生成模块240,用于复制所述接口代码模板,将复制的所述接口代码模板中所述待替换接口参数替换为与查找到的与所述待替换接口参数对应的参数值,得到接口代码。
例如,若接口代码模板中定义了一个输入参数,且在接口文档中存在与该输入参数对应的多个参数值,则将接口代码模板中定义的输入参数进行多次复制,将接口文档中每个参数值进行替换,得到生成的接口代码,该接口代码中包含多个输入参数值。
例如,上述接口代码模板示例中的待替换参数包括“$interfaceName”,“$instruction”,“type”,“filedName”,接口文档中与这几个待替换参数对应的参数值分别为:“AddNote”,“发起者的第三方用户id“,“String”,“platUserID”,且这几个参数值根据其说明,分别表示:类名、说明、类型、字段类型、字段名称。则生成的接口代码为:
表1为另一个接口文档中的参数值示例:
$interfaceName $instruction type filedName
AddNote 发起者的第三方用户id String platUserId
AddNote 当前所在的私聊房间ID String roomId
AddNote 发言人第三方用户id String speakerPlatUserId
AddNote 笔录内容 String content
表一
针对表一中的参数值,对待替换接口参数进行替换,生成的接口代码为:
本实施例中,替换参数值以后的接口代码即为生成的接口代码,可以看出,能够快速地根据接口文档中的4个参数值生成包括该4个参数值的代码。
可选的,本发明一实施例中,所述接口代码模板中同一作用的待替换接口参数的数量为一个。
所述同一作用是指作用相同的待替换接口参数,例如用于定义接口名称的待替换接口参数为一个、用于定义变量的待替换接口参数为一个。即在本实施例中,不存在重复作用的待替换接口参数,从而使得接口代码模板足够精简,并且在生成接口代码时,不需要复杂的匹配,能够快速生产包含任意数量出参与入参的接口代码。
可选的,在本发明一实施例中,所述装置还包括:第一更新模块,用于:
检测所述接口文档中所述待替换接口参数对应的参数值是否存在变化;
若所述接口文档中所述待替换接口参数对应的参数值存在变化,确定所述参数值为所述接口代码中待更新参数值;
获取所述参数值在变化后的变更参数值;
将所述接口代码中待更新参数值更新为所述变更参数值。
例如,待替换接口参数“filedName”对应的一个参数值原本为“roomId”,若变更为“roomID_1”,则将之前所生成的接口代码中的“roomId”变更为“roomID_1”。
在本发明另一实施例中,检测接口文档中的参数值是否有增加或减少,若存在减少,则将已生成的接口代码进行对应增加或减少。
通过本实施里,可以在快速生成代码之后,在接口文档中的参数值存在变化时相应地快速更新接口代码。
可选的,在本发明另一实施例中,所述装置还包括:第二更新模块,用于:
检测所述接口代码模板中接口的信息是否存在变化,所述接口的信息包括接口引用的包、接口的类型、接口包含的变量的信息、接口包含的方法的信息之中的一项或多项;
若所述接口代码模板中接口的信息存在变化,获取变化前的第一信息以及变化后的第二信息;
在所述接口代码中将所述第一信息替换为所述第二信息。
例如,初次生成接口代码时,接口代码模板中包含以下接口信息:“$interfaceName InputDTO extends BaseDTO”;若检测到接口代码模板调整为:“$interfaceName InputDTO extends BaseDTTD”,则表明接口代码模板中接口所继承的接口发生了变化,此时将基于该接口代码模板生成的接口代码进行调整,具体是将初次生成的接口代码中的接口所继承的接口“BaseDTO”替换为“BaseDTTD”。
通过本实施例,可以在接口代码模板中的接口的信息发生变化时,对基于该接口代码模板所生成的接口代码统一进行调整,提高代码修改的效率。
本发明提供的一种代码生成装置,通过获取模块获取接口代码模板以及接口文档;确定模块识别所述接口代码模板中的特殊字符,确定所述特殊字符标识的参数为待替换接口参数,其中,所述待替换接口参数为一个或多个;查找模块根据所述待替换接口参数的参数名在所述接口文档中查找与所述待替换接口参数对应的参数值,其中,每个待替换接口参数对应的参数值为一个或多个;生成模块复制所述接口代码模板,将复制的所述接口代码模板中所述待替换接口参数替换为与查找到的与所述待替换接口参数对应的参数值,得到接口代码。从而能够快速生成接口代码无需用户手动编写接口代码,提高接口代码生产的效率。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。
如图3所示,图3是本发明实现代码生成方法的较佳实施例的计算机装置的结构示意图。所述计算机装置包括至少一个发送装置31、至少一个存储器32、至少一个处理器33、至少一个接收装置34以及至少一个通信总线。其中,所述通信总线用于实现这些组件之间的连接通信。
所述计算机装置是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。所述计算机装置还可包括网络设备和/或用户设备。其中,所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量主机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。
所述计算机装置可以是,但不限于任何一种可与用户通过键盘、触摸板或声控设备等方式进行人机交互的电子产品,例如,平板电脑、智能手机、监控设备等终端。
所述计算机装置所处的网络包括,但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
其中,所述接收装置34和所述发送装置31可以是有线发送端口,也可以为无线设备,例如包括天线装置,用于与其他设备进行数据通信。
所述存储器32用于存储程序代码。所述存储器32可以是集成电路中没有实物形式的具有存储功能的电路,如RAM(Random-Access Memory,随机存取存储器)、FIFO(First InFirst Out,先进先出存储器)等。或者,所述存储器32也可以是具有实物形式的存储器,如内存条、TF卡(Trans-flash Card)、智能媒体卡(smart media card)、安全数字卡(securedigital card)、快闪存储器卡(flash card)等储存设备等等。
所述处理器33可以包括一个或者多个微处理器、数字处理器。所述处理器33可调用存储器32中存储的程序代码以执行相关的功能。例如,图2中所述的各个模块是存储在所述存储器32中的程序代码,并由所述处理器33所执行,以实现一种代码生成方法。所述处理器33又称中央处理器(CPU,Central Processing Unit),是一块超大规模的集成电路,是运算核心(Core)和控制核心(Control Unit)。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (10)

1.一种代码生成方法,其特征在于,所述方法包括:
获取接口代码模板以及接口文档;
识别所述接口代码模板中的特殊字符,确定所述特殊字符标识的参数为待替换接口参数,其中,所述待替换接口参数为一个或多个;
根据所述待替换接口参数的参数名在所述接口文档中查找与所述待替换接口参数对应的参数值,其中,每个待替换接口参数对应的参数值为一个或多个;
复制所述接口代码模板,将复制的所述接口代码模板中所述待替换接口参数替换为与查找到的与所述待替换接口参数对应的参数值,得到接口代码。
2.如权利要求1所述的方法,其特征在于,所述获取接口代码模板以及接口文档之后,所述方法还包括:
扫描所述接口代码模板;
判断所述接口代码模板是否包含接口名称和方法;
若是,判断所述接口名称和所述方法是否符合预设编码规范,以及所述方法的类型是否与所述方法的函数体的输出类型一致;
若所述接口名称和所述方法符合预设编码规范且所述方法的类型与所述方法的函数体的输出类型一致,执行所述识别所述接口代码模板中的特殊字符,确定所述特殊字符标识的参数为待替换接口参数的操作。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
若所述接口名称和所述方法不符合预设编码规范,发送所述接口代码模板不符合规范提醒,禁止调用所述接口代码模板生成代码;
若所述方法的类型与所述方法的函数体的输出类型不一致,发送所述接口代码模板存在函数异常提醒,禁止调用所述接口代码模板生成代码。
4.如权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
检测所述接口文档中所述待替换接口参数对应的参数值是否存在变化;
若所述接口文档中所述待替换接口参数对应的参数值存在变化,确定所述参数值为所述接口代码中待更新参数值;
获取所述参数值在变化后的变更参数值;
将所述接口代码中待更新参数值更新为所述变更参数值。
5.如权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
检测所述接口代码模板中接口的信息是否存在变化,所述接口的信息包括接口引用的包、接口的类型、接口包含的变量的信息、接口包含的方法的信息之中的一项或多项;
若所述接口代码模板中接口的信息存在变化,获取变化前的第一信息以及变化后的第二信息;
在所述接口代码中将所述第一信息替换为所述第二信息。
6.如权利要求1至3中任一项所述的方法,其特征在于,所述接口代码模板中同一作用的待替换接口参数的数量为一个。
7.如权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
若根据所述待替换接口参数的参数名在所述接口文档中未查找到与所述待替换接口参数对应的参数值,发送所述接口代码模板与所述接口文档不匹配的提醒消息。
8.一种代码生成装置,其特征在于,所述装置包括:
获取模块,用于获取接口代码模板以及接口文档;
确定模块,用于识别所述接口代码模板中的特殊字符,确定所述特殊字符标识的参数为待替换接口参数,其中,所述待替换接口参数为一个或多个;
查找模块,用于根据所述待替换接口参数的参数名在所述接口文档中查找与所述待替换接口参数对应的参数值,其中,每个待替换接口参数对应的参数值为一个或多个;
生成模块,用于复制所述接口代码模板,将复制的所述接口代码模板中所述待替换接口参数替换为与查找到的与所述待替换接口参数对应的参数值,得到接口代码。
9.一种计算机装置,其特征在于,所述计算机装置包括存储器及处理器,所述存储器用于存储至少一个指令,所述处理器用于执行所述至少一个指令以实现如权利要求1至7中任一项所述的代码生成方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于:所述计算机指令被处理器执行时实现如权利要求1至7中任一项所述的代码生成方法。
CN201910447659.4A 2019-05-27 2019-05-27 代码生成方法、装置、计算机装置及存储介质 Pending CN110362295A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910447659.4A CN110362295A (zh) 2019-05-27 2019-05-27 代码生成方法、装置、计算机装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910447659.4A CN110362295A (zh) 2019-05-27 2019-05-27 代码生成方法、装置、计算机装置及存储介质

Publications (1)

Publication Number Publication Date
CN110362295A true CN110362295A (zh) 2019-10-22

Family

ID=68215346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910447659.4A Pending CN110362295A (zh) 2019-05-27 2019-05-27 代码生成方法、装置、计算机装置及存储介质

Country Status (1)

Country Link
CN (1) CN110362295A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111221519A (zh) * 2019-11-12 2020-06-02 广州银汉科技有限公司 一基于Python的CLI自动化导出方法
CN111638873A (zh) * 2020-05-21 2020-09-08 平安普惠企业管理有限公司 程序代码的生成方法、装置、计算机设备及存储介质
CN112230904A (zh) * 2020-10-16 2021-01-15 蜂助手股份有限公司 基于接口文档的代码生成方法、装置、存储介质及服务器
CN112905164A (zh) * 2019-12-04 2021-06-04 北京沃东天骏信息技术有限公司 一种项目代码处理方法和装置
CN113971024A (zh) * 2021-12-24 2022-01-25 云账户技术(天津)有限公司 接口管理方法、装置、电子设备以及可读存储介质
CN114968332A (zh) * 2022-05-09 2022-08-30 阿里巴巴(中国)有限公司 Api的生成方法、电子设备和存储介质
CN115098085A (zh) * 2022-06-23 2022-09-23 北京新唐思创教育科技有限公司 接口对象的生成方法、装置、电子设备及存储介质
CN118276903A (zh) * 2024-05-29 2024-07-02 暗物智能科技(广州)有限公司 应用程序编程接口api管理方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE8304501D0 (sv) * 1983-08-19 1983-08-19 Kurt Katzeff Anordning for bildande av en information och/eller instruktion avsedd att matas in i en datamaskins programminne
US20090327994A1 (en) * 2008-06-26 2009-12-31 Microsoft Corporation Metadata driven api development
CN109240661A (zh) * 2018-08-02 2019-01-18 武汉烽火众智数字技术有限责任公司 一种代码生成方法及装置
CN109614102A (zh) * 2018-10-09 2019-04-12 平安科技(深圳)有限公司 代码自动生成方法、装置、电子设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE8304501D0 (sv) * 1983-08-19 1983-08-19 Kurt Katzeff Anordning for bildande av en information och/eller instruktion avsedd att matas in i en datamaskins programminne
US20090327994A1 (en) * 2008-06-26 2009-12-31 Microsoft Corporation Metadata driven api development
CN109240661A (zh) * 2018-08-02 2019-01-18 武汉烽火众智数字技术有限责任公司 一种代码生成方法及装置
CN109614102A (zh) * 2018-10-09 2019-04-12 平安科技(深圳)有限公司 代码自动生成方法、装置、电子设备及存储介质

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111221519A (zh) * 2019-11-12 2020-06-02 广州银汉科技有限公司 一基于Python的CLI自动化导出方法
CN112905164A (zh) * 2019-12-04 2021-06-04 北京沃东天骏信息技术有限公司 一种项目代码处理方法和装置
CN111638873A (zh) * 2020-05-21 2020-09-08 平安普惠企业管理有限公司 程序代码的生成方法、装置、计算机设备及存储介质
CN112230904A (zh) * 2020-10-16 2021-01-15 蜂助手股份有限公司 基于接口文档的代码生成方法、装置、存储介质及服务器
CN113971024A (zh) * 2021-12-24 2022-01-25 云账户技术(天津)有限公司 接口管理方法、装置、电子设备以及可读存储介质
CN114968332A (zh) * 2022-05-09 2022-08-30 阿里巴巴(中国)有限公司 Api的生成方法、电子设备和存储介质
CN115098085A (zh) * 2022-06-23 2022-09-23 北京新唐思创教育科技有限公司 接口对象的生成方法、装置、电子设备及存储介质
CN118276903A (zh) * 2024-05-29 2024-07-02 暗物智能科技(广州)有限公司 应用程序编程接口api管理方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
CN110362295A (zh) 代码生成方法、装置、计算机装置及存储介质
CN111026470B (zh) 用于输入数据的验证和转换的系统和方法
CN109683953B (zh) 一种基于可视化界面进行配置文件处理的方法及装置
CN108446314B (zh) 一种学生信息存储方法、计算机可读存储介质及终端设备
CN109388675A (zh) 数据分析方法、装置、计算机设备及存储介质
CN106874253A (zh) 识别敏感信息的方法及装置
CN108241741A (zh) 一种文本分类方法、服务器及计算机可读存储介质
CN109800339A (zh) 正则表达式生成方法、装置、计算机设备及存储介质
WO2018075191A1 (en) Techniques for scheduling language models and character recognition models for handwriting inputs
KR20190095099A (ko) 거래 시스템 에러 검출 방법, 장치, 저장 매체 및 컴퓨터 장치
CN110097170A (zh) 信息推送对象预测模型获取方法、终端及存储介质
CN109828759A (zh) 代码编译方法、装置、计算机装置及存储介质
CN109960719A (zh) 一种文件处理方法和相关装置
CN116775639A (zh) 数据处理方法、存储介质及电子设备
CN110119429B (zh) 数据处理方法、装置、计算机设备和存储介质
CN105323145A (zh) 恶意信息识别方法、恶意信息识别装置及系统
CN114048136A (zh) 测试类型确定方法、装置、服务器、介质及产品
CN104506636B (zh) 一种数据同步方法及装置
CN107277186B (zh) 一种电子座位号的设置方法、装置及系统
CN112560445A (zh) 一种市长热线热点诉求话题检测方法和装置
WO2015077501A1 (en) Processing page
CN110852041A (zh) 一种字段处理方法及相关设备
CN109447582B (zh) 业务流程的处理方法、设备和存储介质
CN109246083B (zh) 一种dga域名的检测方法及装置
CN113837878B (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