CN114253520B - 接口代码生成方法和装置 - Google Patents

接口代码生成方法和装置 Download PDF

Info

Publication number
CN114253520B
CN114253520B CN202010995281.4A CN202010995281A CN114253520B CN 114253520 B CN114253520 B CN 114253520B CN 202010995281 A CN202010995281 A CN 202010995281A CN 114253520 B CN114253520 B CN 114253520B
Authority
CN
China
Prior art keywords
interface
target
information
description language
target interface
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.)
Active
Application number
CN202010995281.4A
Other languages
English (en)
Other versions
CN114253520A (zh
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.)
Douyin Vision Co Ltd
Original Assignee
Douyin Vision 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 Douyin Vision Co Ltd filed Critical Douyin Vision Co Ltd
Priority to CN202010995281.4A priority Critical patent/CN114253520B/zh
Publication of CN114253520A publication Critical patent/CN114253520A/zh
Application granted granted Critical
Publication of CN114253520B publication Critical patent/CN114253520B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal 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)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例公开了接口代码生成方法和装置。该方法的一具体实施方式包括:响应于接收到目标接口对应的修改后的接口描述语言,基于修改后的接口描述语言,判断目标接口对应的接口信息是否发生变化,确定目标接口对应的接口信息发生变化后,更新目标接口对应的接口信息,得到目标接口的更新接口信息,最后根据目标接口的更新接口信息和预设代码生成信息,生成与目标接口对应的更新接口代码。从而能够基于修改后的接口描述语言自动更新接口信息,以及自动生成目标接口的更新接口代码,无需变换目标接口的语言,保证了接口定义的一致性。

Description

接口代码生成方法和装置
技术领域
本申请实施例涉及计算机技术领域,具体涉及接口代码生成方法和装置。
背景技术
随着互联网技术的飞速发展,在现今互联网公司的研发流程中,互联网公司开发的软件客户端以及后端服务之间根据接口定义进行交互,为了便于管理接口,提供了一种机制对海量的接口定义进行管理,如使用文档、开源的接口管理平台或者互联网公司自研的接口管理平台进行管理接口。
然而使用文档管理接口,需要依赖研发人员进行手工接口维护,且根据接口定义进行软件编写也都是手工的形式。使用开源的接口管理平台,生成的接口代码无法满足研发人员的需求,难以和业务自己的代码融合,或者没有代码生成的功能。
发明内容
本申请实施例提出了接口代码生成方法和装置。
第一方面,本申请实施例提供了一种接口代码生成方法,该方法包括:响应于接收到目标接口对应的修改后的接口描述语言,基于修改后的接口描述语言,判断目标接口对应的接口信息是否发生变化;响应于确定目标接口对应的接口信息发生变化,更新目标接口对应的接口信息,得到目标接口的更新接口信息;基于目标接口的更新接口信息和预设代码生成信息,生成与目标接口对应的更新接口代码。
在一些实施例中,基于修改后的接口描述语言,判断目标接口对应的接口信息是否发生变化,包括:基于修改后的接口描述语言,生成与修改后的接口描述语言对应的变更信息;基于变更信息,判断目标接口对应的接口信息是否发生变化。
在一些实施例中,响应于确定目标接口对应的接口信息发生变化,更新目标接口对应的接口信息,得到目标接口的更新接口信息,包括:响应于确定目标接口对应的接口信息发生变化,对修改后的接口描述语言进行兼容性检查;响应于确定修改后的接口描述语言通过兼容性检查,对修改后的接口描述语言更新版本,得到目标接口的更新接口信息。
在一些实施例中,响应于确定目标接口对应的接口信息发生变化,对修改后的接口描述语言进行兼容性检查,包括:响应于确定目标接口对应的接口信息发生变化,获取修改后的接口描述语言的属性字段,并对属性字段执行兼容性检查操作。
在一些实施例中,基于目标接口的更新接口信息和预设代码生成信息,生成与目标接口对应的更新接口代码,包括:基于目标接口的更新接口信息,判断是否存在目标接口对应的预设代码生成条件;响应于确定存在目标接口对应的预设代码生成条件,调用预设代码生成条件对应的预设脚手架,生成与目标接口对应的更新接口代码。
在一些实施例中,该方法还包括:响应于得到与目标接口对应的更新接口代码,获取更新接口代码的提交信息,并基于提交信息,判断更新接口代码是否发生变化;响应于确定更新接口代码发生变化,配置与更新接口代码对应的代码标志,并向终端发送生成更新接口代码的信息。
在一些实施例中,预设代码生成条件和预设脚手架基于以下方式实现:响应于接收到用户在终端输入的脚手架的配置参数生成并存储预设脚手架;响应于接收到用户在终端选择的脚手架和脚手架的配置参数生成并存储预设代码生成条件。
在一些实施例中,该方法还包括:响应于确定修改后的接口描述语言未通过兼容性检查,向终端发送修改后的接口描述语言未通过兼容性检查的信息。
第二方面,本申请实施例提供了一种接口代码生成装置,该装置包括:判断单元,被配置成响应于接收到目标接口对应的修改后的接口描述语言,基于修改后的接口描述语言,判断目标接口对应的接口信息是否发生变化;更新单元,被配置成响应于确定目标接口对应的接口信息发生变化,更新目标接口对应的接口信息,得到目标接口的更新接口信息;生成单元,被配置成基于目标接口的更新接口信息和预设代码生成信息,生成与目标接口对应的更新接口代码。
在一些实施例中,判断单元包括:第一生成模块,被配置成基于修改后的接口描述语言,生成与修改后的接口描述语言对应的变更信息;第一判断模块,被配置成基于变更信息,判断目标接口对应的接口信息是否发生变化。
在一些实施例中,更新单元包括:检查模块,被配置成响应于确定目标接口对应的接口信息发生变化,对修改后的接口描述语言进行兼容性检查;更新模块,被配置成响应于确定修改后的接口描述语言通过兼容性检查,对修改后的接口描述语言更新版本,得到目标接口的更新接口信息。
在一些实施例中,检查模块,被配置成响应于确定目标接口对应的接口信息发生变化,获取修改后的接口描述语言的属性字段,并对属性字段执行兼容性检查操作。
在一些实施例中,生成单元包括:第二判断模块,被配置成基于目标接口的更新接口信息,判断是否存在目标接口对应的预设代码生成条件;第二生成模块,被配置成响应于确定存在目标接口对应的预设代码生成条件,调用预设代码生成条件对应的预设脚手架,生成与目标接口对应的更新接口代码。
在一些实施例中,该装置还包括:获取单元,被配置成响应于得到与目标接口对应的更新接口代码,获取更新接口代码的提交信息,并基于提交信息,判断更新接口代码是否发生变化;第一发送单元,被配置成响应于确定更新接口代码发生变化,配置与更新接口代码对应的代码标志,并向终端发送生成更新接口代码的信息。
在一些实施例中,预设代码生成条件和预设脚手架基于以下方式实现:响应于接收到用户在终端输入的脚手架的配置参数生成并存储预设脚手架;响应于接收到用户在终端选择的脚手架和脚手架的配置参数生成并存储预设代码生成条件。
在一些实施例中,该装置还包括:第二发送单元,被配置成响应于确定修改后的接口描述语言未通过兼容性检查,向终端发送修改后的接口描述语言未通过兼容性检查的信息。
第三方面,本申请实施例提供了一种服务器,该服务器包括:一个或多个处理器;存储装置,其上存储有一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。
第四方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
本申请实施例提供的接口代码生成方法和装置,通过响应于接收到目标接口对应的修改后的接口描述语言,基于修改后的接口描述语言,判断目标接口对应的接口信息是否发生变化,确定目标接口对应的接口信息发生变化后,更新目标接口对应的接口信息,得到目标接口的更新接口信息,最后根据目标接口的更新接口信息和预设代码生成信息,生成与目标接口对应的更新接口代码。从而能够基于修改后的接口描述语言自动更新接口信息,以及自动生成目标接口的更新接口代码,无需变换目标接口的语言,保证了接口定义的一致性;同时,能够根据预设代码生成信息,生成预设代码生成信息指定的接口代码,从而使得接口代码生成自定义化,能够生成预先设定的指定风格的接口代码,使得接口代码更便于融入已有***,更符合实际场景,进而使得生成的接口代码可以和接口定义的版本相关联,满足用户需求。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请的一个实施例可以应用于其中的示例性***架构图;
图2是根据本申请的接口代码生成方法的一个实施例的流程图;
图3是根据本申请的接口代码生成方法的一个应用场景的示意图;
图4是根据本申请的接口代码生成方法的又一个实施例的流程图;
图5是根据本申请的接口代码生成装置的一个实施例的结构示意图;
图6是适于用来实现本申请的实施例的电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本公开,而非对本公开的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关本公开相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的接口代码生成方法或接口代码生成装置的示例性架构100。
如图1所示,***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如代码类应用、网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件、文本编辑类应用、视频直播类应用等。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是具有显示屏并且支持音视频传输的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如为终端设备101、102、103上代码类应用提供支持的后台服务器。后台服务器可以对接收的目标接口对应的修改后的接口描述语言进行分析等处理,并将处理结果(如生成目标接口的更新接口代码的通知)反馈给终端设备。
需要说明的是,服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
需要说明的是,本申请实施例所提供的接口代码生成方法一般由服务器105执行,相应地,接口代码生成装置一般设置于服务器105中。
需要说明的是,终端101、102、103可用于接收用户设置的预设脚手架和预设代码生成条件,即终端110可以采集用户输入的脚手架的配置参数,例如脚手架的名称、回调url、超时配置和脚手架参数等等,将采集到的脚手架的配置参数发送至服务器105,使得服务器105根据脚手架的配置参数生成并存储预设脚手架;以及终端110可以采集用户针对目标接口选择的预设脚手架,并进一步选择该预设脚手架的配置参数,将采集到的预设脚手架以及该预设脚手架对应的配置参数发送至服务器105,使得服务器105根据目标接口对应的预设脚手架和该预设脚手架的配置参数生成并存储预设代码生成条件。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的接口代码生成方法的一个实施例的流程200。该用于生成目标视频的方法包括以下步骤:
步骤210,响应于接收到目标接口对应的修改后的接口描述语言,基于修改后的接口描述语言,判断目标接口对应的接口信息是否发生变化。
在本实施例中,接口代码生成方法的执行主体(如图1所示的服务器105)可以通过有线连接方式或者无线连接方式获取到目标接口对应的修改后的接口描述语言(IDL,Interface Description Language,接口描述语言),该修改后的接口描述语言可以是用户在终端针对目标接口的原始接口描述语言进行修改后,得到的目标接口对应的修改后的接口描述语言,终端将用户修改后的接口描述语言发送给上述执行主体。上述执行主体获取到修改后的接口描述语言后,对修改后的接口描述语言进行分析,判断目标接口对应的接口信息是否发生变化。
作为示例,上述执行主体接收到终端发送的修改后的接口描述语言,将修改后的接口描述语言与原始接口描述语言进行比较,确定出修改后的接口描述语言与原始接口描述语言之间的区别部分,根据确定出的区别部分,判断目标接口对应的接口信息是否发生变化。
作为另一示例,上述执行主体可以在接收到修改后的接口描述语言后,生成与该修改后的接口描述语言对应的消息序列,该消息序列可以用于表征修改后的接口描述语言的接口信息,根据生成的消息序列判断目标接口对应的接口信息是否发生变化。
在本实施例的一些可选的实现方式中,上述执行主体可以按照以下步骤判断目标接口对应的接口信息是否发生变化:
第一步,基于修改后的接口描述语言,生成与修改后的接口描述语言对应的变更信息。
在本步骤中,上述执行主体接收到目标接口的修改后的接口描述语言后,将接收到的修改后的接口描述语言存储到本地代码库中,例如,Git库。并且上述执行主体根据修改后的接口描述语言自动生成变更信息,该变更信息可以包括用于表征接口描述语言中接口信息的消息,例如,与接口信息对应的消息队列或与接口信息对应的标志信息等。作为示例,上述执行主体中的Git库可以接收到修改后的接口描述语言并进行存储,然后Git库可以根据该修改后的接口描述语言自动生成对应的消息队列。
第二步,基于变更信息,判断目标接口对应的接口信息是否发生变化。
在本步骤中,上述执行主体在生成与修改后的接口描述语言对应的变更信息后,可以将生成的变更信息与上一次生成的变更信息进行比较,通过判断本次生成的变更信息与上一次生成的变更信息之间是否存在区别部分来判断目标接口对应的接口信息是否发生变化;还可以将生成的变更信息与上一次生成的变更信息进行比较,得到本次生成的变更信息与上一次生成的变更信息之间的区别部分,通过判断该区别部分是否对应接口信息的内容来判断目标接口对应的接口信息是否发生变化。
步骤220,响应于确定目标接口对应的接口信息发生变化,更新目标接口对应的接口信息,得到目标接口的更新接口信息。
在本实施例中,上述执行主体可以通过对目标接口对应的接口信息进行判断,确定目标接口对应的接口信息发生变化。上述执行主体根据目标接口对应的修改后的接口描述语言中的接口信息,对目标接口的接口信息进行更新,得到目标接口的更新接口信息。作为示例,上述执行主体通过对本次生成的变更信息与上一次生成的变更信息进行比较,确定目标接口对应的接口信息发生变化,则根据目标接口对应的修改后的接口描述语言对接口信息进行更新,将目标接口的接口信息与修改后的接口描述语言中接口信息更新一致,得到目标接口的更新接口信息。
在本实施例的一些可选的实现方式中,上述执行主体可以按照以下步骤更新目标接口对应的接口信息,得到目标接口的更新接口信息:
第一步,响应于确定目标接口对应的接口信息发生变化,对修改后的接口描述语言进行兼容性检查。
在本步骤中,上述执行主体确定目标接口的接口信息发生变化,对该目标接口对应的修改后的接口描述语言进行兼容性检查,判断修改后的接口描述语言中的接口信息是否满足向前兼容,向前兼容是指以前的版本支持现在版本生成的数据,现在的版本支持以后的版本数据。作为示例,上述执行主体可以对修改后的接口描述语言中的ID类型、tag标志、字段名等等进行检查,确定修改后的接口描述语言是否符合向前兼容。
作为可选实施方式,上述执行主体可以响应于确定目标接口对应的接口信息发生变化,获取修改后的接口描述语言的属性字段,并对属性字段执行兼容性检查操作。
具体地,上述执行主体除了在对修改后的接口描述语言中的ID类型、字段名等等进行检查时,还需要获取修改后的接口描述语言中的一些其他属性字段,该属性字段可以是自定义属性字段,并且对修改后的接口描述语言中一些自定义属性字段进行检查,确定修改后的接口描述语言是否满足向前兼容,该自定义属性字段可以是根据用户需求在接口描述语言中选取的一些字段,本申请中对这些字段不做具体限定。
本实现方式能够对自定义的属性字段进行检查,保证了兼容性检查的全面性,提高了兼容性检查的准确性。
第二步,响应于确定修改后的接口描述语言通过兼容性检查,对修改后的接口描述语言更新版本,得到目标接口的更新接口信息。
在本步骤中,上述执行主体确定修改后的接口描述语言通过兼容性检查后,根据检查后的修改后的接口描述语言进行版本更新操作,可以将修改后的接口描述语言更新为目标接口的当前版本,对目标接口的当前版本进行解析,得到目标接口的更新接口信息。上述执行主体在完成目标接口的版本更新后,得到更新接口信息,可以向终端发送目标接口版本更新的通知信息,以使得终端向用户呈现该通知信息,还可以将目标接口的更新接口信息发送给终端,以使得终端在向用户呈现通知信息的同时,向用户呈现目标接口对应的更新接口信息。
步骤230,基于目标接口的更新接口信息和预设代码生成信息,生成与目标接口对应的更新接口代码。
在本实施例中,上述执行主体在完成目标接口的版本更新后,得到目标接口的更新接口信息,进一步获取与该目标接口对应的预设代码生成信息。然后上述执行主体可以利用预设代码生成信息,将更新接口信息生成与目标接口对应的更新接口代码。上述执行主体可以在生成更新接口代码后,向终端发送更新接口代码生成成功的通知,以使得终端能够向用户呈现目标接口的接口代码更新成功的消息。
在本实施例的一些可选的实现方式中,上述执行主体可以通过以下步骤生成与目标接口对应的更新接口代码:
第一步,基于目标接口的更新接口信息,判断是否存在目标接口对应的预设代码生成条件。
在本步骤中,上述执行主体得到目标接口的更新接口信息后,判断本地是否存储有与该目标接口对应的预设代码生成条件,该预设代码生成条件可以是用户在终端选择生成该目标接口对应的接口代码时,需要调用的脚手架和脚手架的配置参数,然后上述执行主体接收到终端发送的用户选择的脚手架和脚手架的配置参数等信息并存储在本地。
第二步,响应于确定存在目标接口对应的预设代码生成条件,调用预设代码生成条件对应的预设脚手架,生成与目标接口对应的更新接口代码。
在本步骤中,上述执行主体在本地获取到目标接口对应的预设代码生成条件后,根据预设代码生成条件中配置的预设脚手架和该预设脚手架的配置参数,将目标接口的更新接口信息生成与目标接口对应的更新接口代码。该预设脚手架可以是用户在终端输入的脚手架的配置参数,例如脚手架的名称、回调url、超时配置和脚手架参数等等,然后上述执行主体接收到终端发送的用户设置的脚手架和脚手架的配置参数等信息并存储在本地。其中。用户在终端设置脚手架配置参数时,可以采用json格式来描述,支持单选参数、多选参数、文本参数。
本实施方式能够根据用户设定的预设代码生成条件和预设脚手架,生成预先设定的指定风格的接口代码,使得生成代码更便于融入已有***,更符合实际场景,能够满足用户需求等。
继续参见图3,图3是根据本申请实施例的接口代码生成方法的应用场景的一个示意图。在图3的应用场景中,用户在终端310中修改了目标接口的接口描述语言,得到修改后的接口描述语言,终端310将修改后的接口描述语言发送给服务器320。服务器320接收到终端310发送的修改后的接口描述语言,生成该接口描述语言对应的消息序列,并根据该消息序列判断该接口描述语言中的接口信息是否发生变化。然后服务器320确定该接口描述语言中的接口信息发生变化后,根据修改后的接口描述语言对目标接口的接口信息进行更新,得到该目标接口的更新接口信息。最后服务器320在本地读取与该目标接口对应的预设代码生成信息,利用该预设代码生成信息将更新接口信息生成更新接口代码,并向终端310发送生成更新接口代码的通知。
目前,现有技术之一通常是使用文档或开源的接口管理平台管理接口,容易造成需要依赖研发人员进行手工接口维护,或者造成生成的接口代码无法满足研发人员的需求,难以和业务自己的代码融合。然而本申请的上述实施例提供的方法,通过响应于接收到目标接口对应的修改后的接口描述语言,基于修改后的接口描述语言,判断目标接口对应的接口信息是否发生变化,确定目标接口对应的接口信息发生变化后,更新目标接口对应的接口信息,得到目标接口的更新接口信息,最后根据目标接口的更新接口信息和预设代码生成信息,生成与目标接口对应的更新接口代码。从而能够基于修改后的接口描述语言自动更新接口信息,以及自动生成目标接口的更新接口代码,无需变换目标接口的语言,保证了接口定义的一致性;同时,能够根据预设代码生成信息,生成预设代码生成信息指定的接口代码,从而使得接口代码生成自定义化,能够生成预先设定的指定风格的接口代码,使得接口代码更便于融入已有***,更符合实际场景,进而使得生成的接口代码可以和接口定义的版本相关联,满足用户需求。
进一步参考图4,其示出了接口代码生成方法的又一个实施例的流程400。该接口代码生成方法的流程400,包括以下步骤:
步骤410,响应于接收到目标接口对应的修改后的接口描述语言,基于修改后的接口描述语言,判断目标接口对应的接口信息是否发生变化。
步骤420,响应于确定目标接口对应的接口信息发生变化,更新目标接口对应的接口信息,得到目标接口的更新接口信息。
步骤430,基于目标接口的更新接口信息和预设代码生成信息,生成与目标接口对应的更新接口代码。
上述步骤410、步骤420、步骤430分别与前述实施例中的步骤210、步骤220、步骤230及其可选的实现方式一致,上文针对步骤210、步骤220和步骤230及其可选的实现方式的描述也适用于步骤410、步骤420和步骤430,此处不再赘述。
步骤440,响应于得到与目标接口对应的更新接口代码,获取更新接口代码的提交信息,并基于提交信息,判断更新接口代码是否发生变化。
在本实施例中,上述执行主体得到与目标接口对应的更新接口代码后,则将生成的更新接口代码存储代码生成仓库中,并获取该更新接口代码关联的提交信息,该提交信息可以是表征该接口代码是与目标接口对应的关联信息,例如,该提交信息可以是对应的接口描述语言的版本。然后上述执行主体根据获取到的提交信息与上一次获取到的提交信息进行比较,判断得到的更新接口代码是否发生变化。作为示例,上述执行主体得到更新接口代码后,进一步获取该更新接口代码对应的接口描述语言的版本,然后将该更新接口代码对应的接口描述语言的版本与上一次接口代码对应的接口描述语言的版本进行比较,判断两个版本是否相同,若不同,则确定得到的更新接口代码发生变化,若相同,则确定得到的更新接口代码没有发生变化。
步骤450,响应于确定更新接口代码发生变化,配置与更新接口代码对应的代码标志,并向终端发送生成更新接口代码的信息。
在本实施例中,上述执行主体根据更新接口代码的提交信息确定更新接口代码发生变化,根据该更新接口代码,配置与更新接口代码对应的代码标志,该代码标志可以用于标识该更新接口代码,然后上述执行主体可以向终端发送生成更新接口代码的信息。
从图4中可以看出,本实施例中的接口代码生成方法的流程400体现了对生成的更新接口代码进行判断,保证了生成的更新接口代码与上一次生成的接口代码相比发生变化,同时为更新接口代码配置代码标志,在调用该更新接口代码时可以直接调用代码标志,节省操作。
在本实施例的一些可选的实现方式中,上述执行主体还可以响应于确定修改后的接口描述语言未通过兼容性检查,向终端发送修改后的接口描述语言未通过兼容性检查的信息。
具体地,上述执行主体在对修改后的接口描述语言进行兼容性检查时,确定修改后的接口描述语言未通过兼容性检查,即确定修改后的接口描述语言不满足向前兼容或接口定义冲突等,则停止对修改后的接口描述语言的操作,向终端发送修改后的接口描述语言未通过兼容性检查的信息,以使得终端向用户呈现该信息,提示用户在终端进一步调整修改后的接口描述语言。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了接口代码生成装置的一个实施例,该装置实施例与图2或图4所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例提供的接口代码生成装置500包括判断单元510、更新单元520和生成单元530。其中,判断单元510,被配置成响应于接收到目标接口对应的修改后的接口描述语言,基于修改后的接口描述语言,判断目标接口对应的接口信息是否发生变化;更新单元520,被配置成响应于确定目标接口对应的接口信息发生变化,更新目标接口对应的接口信息,得到目标接口的更新接口信息;生成单元530,被配置成基于目标接口的更新接口信息和预设代码生成信息,生成与目标接口对应的更新接口代码。
在本实施例中,接口代码生成装置500中:判断单元510、更新单元520和生成单元530的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤210、步骤220和步骤230的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,上述判断单元510包括:第一生成模块,被配置成基于修改后的接口描述语言,生成与修改后的接口描述语言对应的变更信息;第一判断模块,被配置成基于变更信息,判断目标接口对应的接口信息是否发生变化。
在本实施例的一些可选的实现方式中,上述更新单元520包括:检查模块,被配置成响应于确定目标接口对应的接口信息发生变化,对修改后的接口描述语言进行兼容性检查;更新模块,被配置成响应于确定修改后的接口描述语言通过兼容性检查,对修改后的接口描述语言更新版本,得到目标接口的更新接口信息。
在本实施例的一些可选的实现方式中,检查模块,被配置成响应于确定目标接口对应的接口信息发生变化,获取修改后的接口描述语言的属性字段,并对属性字段执行兼容性检查操作。
在本实施例的一些可选的实现方式中,上述生成单元530包括:第二判断模块,被配置成基于目标接口的更新接口信息,判断是否存在目标接口对应的预设代码生成条件;第二生成模块,被配置成响应于确定存在目标接口对应的预设代码生成条件,调用预设代码生成条件对应的预设脚手架,生成与目标接口对应的更新接口代码。
在本实施例的一些可选的实现方式中,该装置还包括:获取单元,被配置成响应于得到与目标接口对应的更新接口代码,获取更新接口代码的提交信息,并基于提交信息,判断更新接口代码是否发生变化;第一发送单元,被配置成响应于确定更新接口代码发生变化,配置与更新接口代码对应的代码标志,并向终端发送生成更新接口代码的信息。
在本实施例的一些可选的实现方式中,预设代码生成条件和预设脚手架基于以下方式实现:响应于接收到用户在终端输入的脚手架的配置参数生成并存储预设脚手架;响应于接收到用户在终端选择的脚手架和脚手架的配置参数生成并存储预设代码生成条件。
在本实施例的一些可选的实现方式中,该装置还包括:第二发送单元,被配置成响应于确定修改后的接口描述语言未通过兼容性检查,向终端发送修改后的接口描述语言未通过兼容性检查的信息。
本申请的上述实施例提供的装置,通过判断单元510响应于接收到目标接口对应的修改后的接口描述语言,基于修改后的接口描述语言,判断目标接口对应的接口信息是否发生变化。而后,更新单元520确定目标接口对应的接口信息发生变化后,更新目标接口对应的接口信息,得到目标接口的更新接口信息。最后,生成单元530根据目标接口的更新接口信息和预设代码生成信息,生成与目标接口对应的更新接口代码。从而能够基于修改后的接口描述语言自动更新接口信息,以及自动生成目标接口的更新接口代码,无需变换目标接口的语言,保证了接口定义的一致性;同时,能够根据预设代码生成信息,生成预设代码生成信息指定的接口代码,从而使得接口代码生成自定义化,能够生成预先设定的指定风格的接口代码,使得接口代码更便于融入已有***,更符合实际场景,进而使得生成的接口代码可以和接口定义的版本相关联,满足用户需求。
下面参考图6,其示出了适于用来实现本申请实施例的电子设备(例如图1中的服务器)600的结构示意图。本申请实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图6示出的服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头等的输入装置606;包括例如液晶显示器(LCD,Liquid Crystal Display)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图6中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM 602被安装。在该计算机程序被处理装置601执行时,执行本申请的实施例的方法中限定的上述功能。
需要说明的是,本申请的实施例的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(Radio Frequency,射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述服务器中所包含的;也可以是单独存在,而未装配入该服务器中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该服务器执行时,使得该服务器:响应于接收到目标接口对应的修改后的接口描述语言,基于修改后的接口描述语言,判断目标接口对应的接口信息是否发生变化;响应于确定目标接口对应的接口信息发生变化,更新目标接口对应的接口信息,得到目标接口的更新接口信息;基于目标接口的更新接口信息和预设代码生成信息,生成与目标接口对应的更新接口代码。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请实施例的操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言、Python或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请的各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器,包括判断单元、更新单元和生成单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,判断单元还可以被描述为“响应于接收到目标接口对应的修改后的接口描述语言,基于修改后的接口描述语言,判断目标接口对应的接口信息是否发生变化的单元”。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请的实施例中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述本公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (11)

1.一种接口代码生成方法,包括:
响应于接收到目标接口对应的修改后的接口描述语言,基于所述修改后的接口描述语言,判断所述目标接口对应的接口信息是否发生变化;
响应于确定所述目标接口对应的接口信息发生变化,更新所述目标接口对应的接口信息,得到所述目标接口的更新接口信息;
基于所述目标接口的更新接口信息和预设代码生成信息,生成与所述目标接口对应的更新接口代码;
所述响应于确定所述目标接口对应的接口信息发生变化,更新所述目标接口对应的接口信息,得到所述目标接口的更新接口信息,包括:
响应于确定所述目标接口对应的接口信息发生变化,对所述修改后的接口描述语言进行兼容性检查;
响应于确定所述修改后的接口描述语言通过所述兼容性检查,对所述修改后的接口描述语言更新版本,得到所述目标接口的更新接口信息;
所述响应于确定所述目标接口对应的接口信息发生变化,对所述修改后的接口描述语言进行兼容性检查,包括:
响应于确定所述目标接口对应的接口信息发生变化,获取所述修改后的接口描述语言的属性字段,并对所述属性字段执行兼容性检查操作。
2.根据权利要求1所述的方法,其中,所述基于所述修改后的接口描述语言,判断所述目标接口对应的接口信息是否发生变化,包括:
基于所述修改后的接口描述语言,生成与所述修改后的接口描述语言对应的变更信息;
基于所述变更信息,判断所述目标接口对应的接口信息是否发生变化。
3.根据权利要求1所述的方法,其中,所述基于所述目标接口的更新接口信息和预设代码生成信息,生成与所述目标接口对应的更新接口代码,包括:
基于所述目标接口的更新接口信息,判断是否存在所述目标接口对应的预设代码生成条件;所述预设代码生成条件为根据所述目标接口对应的预设脚手架和所述预设脚手架的配置参数生成的;
响应于确定存在所述目标接口对应的预设代码生成条件,调用所述预设代码生成条件对应的预设脚手架,生成与所述目标接口对应的更新接口代码。
4.根据权利要求3所述的方法,其中,所述方法还包括:
响应于得到与所述目标接口对应的更新接口代码,获取所述更新接口代码的提交信息,并基于所述提交信息,判断所述更新接口代码是否发生变化;
响应于确定所述更新接口代码发生变化,配置与所述更新接口代码对应的代码标志,并向终端发送生成所述更新接口代码的信息。
5.根据权利要求3所述的方法,其中,所述预设代码生成条件和预设脚手架基于以下方式实现:
响应于接收到用户在终端输入的脚手架的配置参数生成并存储所述预设脚手架;
响应于接收到用户在终端选择的脚手架和所述脚手架的配置参数生成并存储所述预设代码生成条件。
6.根据权利要求1所述的方法,其中,所述方法还包括:
响应于确定所述修改后的接口描述语言未通过所述兼容性检查,向终端发送所述修改后的接口描述语言未通过兼容性检查的信息。
7.一种接口代码生成装置,包括:
判断单元,被配置成响应于接收到目标接口对应的修改后的接口描述语言,基于所述修改后的接口描述语言,判断所述目标接口对应的接口信息是否发生变化;
更新单元,被配置成响应于确定所述目标接口对应的接口信息发生变化,更新所述目标接口对应的接口信息,得到所述目标接口的更新接口信息;
生成单元,被配置成基于所述目标接口的更新接口信息和预设代码生成信息,生成与所述目标接口对应的更新接口代码;
所述更新单元包括:
检查模块,被配置成响应于确定所述目标接口对应的接口信息发生变化,对所述修改后的接口描述语言进行兼容性检查;
更新模块,被配置成响应于确定所述修改后的接口描述语言通过所述兼容性检查,对所述修改后的接口描述语言更新版本,得到所述目标接口的更新接口信息;
所述检查模块,被配置为响应于确定所述目标接口对应的接口信息发生变化,获取所述修改后的接口描述语言的属性字段,并对所述属性字段执行兼容性检查操作。
8.根据权利要求7所述的装置,其中,所述判断单元包括:
第一生成模块,被配置成基于所述修改后的接口描述语言,生成与所述修改后的接口描述语言对应的变更信息;
第一判断模块,被配置成基于所述变更信息,判断所述目标接口对应的接口信息是否发生变化。
9.根据权利要求7所述的装置,其中,所述生成单元包括:
第二判断模块,被配置成基于所述目标接口的更新接口信息,判断是否存在所述目标接口对应的预设代码生成条件;所述预设代码生成条件为根据所述目标接口对应的预设脚手架和所述预设脚手架的配置参数生成的;
第二生成模块,被配置成响应于确定存在所述目标接口对应的预设代码生成条件,调用所述预设代码生成条件对应的预设脚手架,生成与所述目标接口对应的更新接口代码。
10.一种服务器,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
11.一种计算机可读介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如权利要求1-6中任一所述的方法。
CN202010995281.4A 2020-09-21 2020-09-21 接口代码生成方法和装置 Active CN114253520B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010995281.4A CN114253520B (zh) 2020-09-21 2020-09-21 接口代码生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010995281.4A CN114253520B (zh) 2020-09-21 2020-09-21 接口代码生成方法和装置

Publications (2)

Publication Number Publication Date
CN114253520A CN114253520A (zh) 2022-03-29
CN114253520B true CN114253520B (zh) 2024-03-12

Family

ID=80788986

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010995281.4A Active CN114253520B (zh) 2020-09-21 2020-09-21 接口代码生成方法和装置

Country Status (1)

Country Link
CN (1) CN114253520B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107832045A (zh) * 2017-10-16 2018-03-23 北京京东尚科信息技术有限公司 跨编程语言接口转换的方法和装置
CN111221742A (zh) * 2020-01-19 2020-06-02 中国平安人寿保险股份有限公司 一种测试案例的更新方法、装置、存储介质和服务器
CN111221521A (zh) * 2019-12-31 2020-06-02 奇安信科技集团股份有限公司 日志代码的生成方法、装置、计算机***和可读存储介质
CN111241454A (zh) * 2020-01-21 2020-06-05 优信拍(北京)信息科技有限公司 一种生成网页代码的方法、***和装置
CN111367547A (zh) * 2020-02-27 2020-07-03 平安国际智慧城市科技股份有限公司 接口代码自动同步方法、装置及存储介质
WO2020173128A1 (zh) * 2019-02-27 2020-09-03 平安科技(深圳)有限公司 软件开发工具包的生成方法、装置及终端设备
CN111625224A (zh) * 2020-05-28 2020-09-04 北京百度网讯科技有限公司 代码生成方法、装置、设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107832045A (zh) * 2017-10-16 2018-03-23 北京京东尚科信息技术有限公司 跨编程语言接口转换的方法和装置
WO2020173128A1 (zh) * 2019-02-27 2020-09-03 平安科技(深圳)有限公司 软件开发工具包的生成方法、装置及终端设备
CN111221521A (zh) * 2019-12-31 2020-06-02 奇安信科技集团股份有限公司 日志代码的生成方法、装置、计算机***和可读存储介质
CN111221742A (zh) * 2020-01-19 2020-06-02 中国平安人寿保险股份有限公司 一种测试案例的更新方法、装置、存储介质和服务器
CN111241454A (zh) * 2020-01-21 2020-06-05 优信拍(北京)信息科技有限公司 一种生成网页代码的方法、***和装置
CN111367547A (zh) * 2020-02-27 2020-07-03 平安国际智慧城市科技股份有限公司 接口代码自动同步方法、装置及存储介质
CN111625224A (zh) * 2020-05-28 2020-09-04 北京百度网讯科技有限公司 代码生成方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN114253520A (zh) 2022-03-29

Similar Documents

Publication Publication Date Title
CN110708346B (zh) 信息处理***和方法
CN111291103B (zh) 接口数据的解析方法、装置、电子设备及存储介质
CN107302597B (zh) 消息文案推送方法和装置
CN111679990B (zh) 测试数据生成方法、装置、可读介质及电子设备
CN110781373B (zh) 榜单更新方法、装置、可读介质和电子设备
CN112684968A (zh) 页面展示方法、装置、电子设备和计算机可读介质
CN114513552B (zh) 数据处理方法、装置、设备及存储介质
CN111694629A (zh) 信息展示方法、装置和电子设备
CN110618768B (zh) 信息呈现方法和装置
CN111787041B (zh) 用于处理数据的方法和装置
CN110489326B (zh) 基于ids的httpapi调试方法装置、介质和设备
CN110619101B (zh) 用于处理信息的方法和装置
CN114253520B (zh) 接口代码生成方法和装置
CN111626802A (zh) 用于处理信息的方法和装置
CN111460020B (zh) 用于解析消息的方法、装置、电子设备和介质
CN113704079B (zh) 基于Protobuf的接口测试方法和装置
CN113407229B (zh) 用于生成离线脚本的方法及装置
CN113656050B (zh) 用于生成版本号的方法和装置
CN111367592B (zh) 信息处理方法和装置
CN111857879B (zh) 数据处理方法、装置、电子设备和计算机可读介质
CN111291199B (zh) 信息查询方法和装置
CN111294657A (zh) 信息处理方法和装置
CN114513548B (zh) 定向调用信息处理方法及装置
US20240152504A1 (en) Data interaction method, apparatus, and electronic device
CN112883410B (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant after: Douyin Vision Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant before: Tiktok vision (Beijing) Co.,Ltd.

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant after: Tiktok vision (Beijing) Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant before: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant