CN116166313A - 接口的调用方法及其装置、电子设备及存储介质 - Google Patents
接口的调用方法及其装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116166313A CN116166313A CN202211656871.XA CN202211656871A CN116166313A CN 116166313 A CN116166313 A CN 116166313A CN 202211656871 A CN202211656871 A CN 202211656871A CN 116166313 A CN116166313 A CN 116166313A
- Authority
- CN
- China
- Prior art keywords
- interface
- preset
- target
- configuration
- request
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种接口的调用方法及其装置、电子设备及存储介质,其中,该调用方法包括:加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件,在预设编译环境编译预设接口文件,得到与每个接口对应的接口类,接收接口调用请求,响应接口调用请求,基于目标接口类调用目标接口标识指示的目标接口,采用目标接口以获取目标数据。本发明解决了相关技术中仅仅简化了数据获取开发,仍然需要对接口的调用进行开发,导致开发成本较高的技术问题。
Description
技术领域
本发明涉及电子信息技术领域,具体而言,涉及一种接口的调用方法及其装置、电子设备及存储介质。
背景技术
当前,在软件开发流程中,当两个系统需要进行数据对接的时候,通常的方式是先由数据提供方编写数据获取接口,数据调用方根据数据提供方提供的数据接口编写调用程序,这种方式下,调用方每对接一个接口就需要编写一套代码,并且每个接口都需要完成一整套的开发、测试和部署上线的流程,所需要投入的人工成本非常高。
随着微服务架构的普及,软件项目的代码结构从单一的多模块系统变成一组独立的微服务,大量的微服务衍生出大量的服务间http(Hyper Text Transfer Protocol,即超文本传输协议)接口调用,因此,简化http接口调用开发成为微服务框架演进过程中无法规避的问题。
相关技术中,微服务框架中多采用feign开源框架来解决上述问题,使用feign开源框架,数据调用方仅需要按照数据提供方的接口规范编写一个数据调用接口类而无须编写实际的请求代码,feign框架会根据接口类的定义使用动态代理技术,在运行期动态组装数据请求逻辑,从而简化了调用方的开发工作量。
由于feign开源框架在简化开发工作量方面的良好特性,很多项目团队不仅仅将其应用在项目内部的微服务间接口调用上,也应用在与真正的外部系统的http接口对接上。然而,调用外部接口与调用项目内部接口存在如下差异:(1)大部分系统对接的需求通常发生在上线后的运维阶段;(2)有些项目中数据需要从不同的数据提供方获取数据,并且数据提供方是不可预期、持续变化的。比如:物联网应用中,不同物联网设备的数据采集和接入,接入的设备种类可能随着时间的推移不停的增加和变化。
基于上述两个差异点的分析,可以发现将feign开源框架应用到真正的外部系统的http接口对接上,并不能完全达到降低开发成本的预期,原因是虽然相对传统的方式,feign框架的使用,仅仅简化了代码开发这个环节的工作量,但是因为每次接口的开发依然需要经历一整套的开发、测试和部署上线的流程,就整个过程来说,人工的投入还是比较高。具体为:
对于差异点(1)提到大部分系统对接的需求通常发生在上线后的运维阶段。运维阶段项目团队通常仅保留必要的运维人员,每次需求的发生就意味着开发和测试人员的调配和投入。
对于差异点(2)提到有些项目中数据提供方是不可预期、持续变化的。这就意味着项目团队需要持续的投入开发和测试人员。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种接口的调用方法及其装置、电子设备及存储介质,以至少解决相关技术中仅仅简化了数据获取开发,仍然需要对接口的调用进行开发,导致开发成本较高的技术问题。
根据本发明实施例的一个方面,提供了一种接口的调用方法,包括:加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件,其中,所述配置规则是预先配置的所述预设接口文件的文件结构模板,所述接口清单中记录多个接口的接口标识,所述预设接口文件是符合预设框架规则的文件;在预设编译环境编译所述预设接口文件,得到与所述每个接口对应的接口类;接收接口调用请求,其中,所述接口调用请求至少包括:目标接口标识,所述目标接口标识对应有目标接口类;响应所述接口调用请求,基于所述目标接口类调用所述目标接口标识指示的目标接口,采用所述目标接口以获取目标数据。
可选地,在加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件之前,还包括:控制预设配置界面接收外部设备输入的配置信息,其中,所述配置信息包括:接口标识、接口请求类型、请求地址、请求参数,所述请求参数包括:参数类型、参数传递位置、请求头参数;基于所述配置信息,生成所述配置规则;基于每个接口的所述接口标识,构建所述接口清单,其中,所述接口清单中的每个所述接口标识关联有接口配置数据;将所述配置规则以及所述接口清单存储至所述预设配置库。
可选地,加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件的步骤,包括:加载所述接口清单,得到每个接口关联的所述接口配置数据;加载所述配置规则,得到配置模板;基于所述配置模板以及所述预设框架规则,将所述接口配置数据转换为所述预设接口文件。
可选地,在加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件之后,还包括:将所有所述预设接口文件加载至所述预设编译环境,其中,所述预设编译环境为处于运行状态的编译环境。
可选地,在接收接口调用请求之前,还包括:配置统一访问地址,其中,所述统一访问地址用于接收不同外部接口发起的所述接口调用请求。
可选地,在接收接口调用请求之后,还包括:基于所有所述接口类,确定与所述目标接口标识对应的所述目标接口类;基于所述目标接口类,构建预设框架请求;将所述预设框架请求发送至预设框架。
可选地,在基于所述目标接口类调用所述目标接口标识指示的目标接口之后,还包括:控制所述预设框架基于所述预设框架请求构建接口数据获取请求;将所述接口数据获取请求发送至与所述目标接口关联的预设接口提供端,其中,所述预设接口提供端用于提供所述目标数据。
根据本发明实施例的另一方面,还提供了一种接口的调用装置,包括:加载单元,用于加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件,其中,所述配置规则是预先配置的所述预设接口文件的文件结构模板,所述接口清单中记录多个接口的接口标识,所述预设接口文件是符合预设框架规则的文件;编译单元,用于在预设编译环境编译所述预设接口文件,得到与所述每个接口对应的接口类;接收单元,用于接收接口调用请求,其中,所述接口调用请求至少包括:目标接口标识,所述目标接口标识对应有目标接口类;调用单元,用于响应所述接口调用请求,基于所述目标接口类调用所述目标接口标识指示的目标接口,采用所述目标接口以获取目标数据。
可选地,所述调用装置还包括:第一控制模块,用于在加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件之前,控制预设配置界面接收外部设备输入的配置信息,其中,所述配置信息包括:接口标识、接口请求类型、请求地址、请求参数,所述请求参数包括:参数类型、参数传递位置、请求头参数;第一生成模块,用于基于所述配置信息,生成所述配置规则;第一构建模块,用于基于每个接口的所述接口标识,构建所述接口清单,其中,所述接口清单中的每个所述接口标识关联有接口配置数据;第一存储模块,用于将所述配置规则以及所述接口清单存储至所述预设配置库。
可选地,所述加载单元包括:第一加载模块,用于加载所述接口清单,得到每个接口关联的所述接口配置数据;第二加载模块,用于加载所述配置规则,得到配置模板;第一转换模块,用于基于所述配置模板以及所述预设框架规则,将所述接口配置数据转换为所述预设接口文件。
可选地,所述调用装置还包括:第三加载模块,用于在加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件之后,将所有所述预设接口文件加载至所述预设编译环境,其中,所述预设编译环境为处于运行状态的编译环境。
可选地,所述调用装置还包括:第一配置模块,用于在接收接口调用请求之前,配置统一访问地址,其中,所述统一访问地址用于接收不同外部接口发起的所述接口调用请求。
可选地,所述调用装置还包括:第一确定模块,用于在接收接口调用请求之后,基于所有所述接口类,确定与所述目标接口标识对应的所述目标接口类;第二构建模块,用于基于所述目标接口类,构建预设框架请求;第一发送模块,用于将所述预设框架请求发送至预设框架。
可选地,所述调用装置还包括:第二控制模块,用于在基于所述目标接口类调用所述目标接口标识指示的目标接口之后,控制所述预设框架基于所述预设框架请求构建接口数据获取请求;第二发送模块,用于将所述接口数据获取请求发送至与所述目标接口关联的预设接口提供端,其中,所述预设接口提供端用于提供所述目标数据。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述接口的调用方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述接口的调用方法。
在本公开中,加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件,在预设编译环境编译预设接口文件,得到与每个接口对应的接口类,接收接口调用请求,响应接口调用请求,基于目标接口类调用目标接口标识指示的目标接口,采用目标接口以获取目标数据。在本公开中,可以先加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件,然后编译预设接口文件,以得到与每个接口对应的接口类,再根据与接收到的接口调用请求中携带的目标接口标识对应的目标接口类调用相应的目标接口,之后采用目标接口获取目标数据,能够通过预先配置接口直接调用相应的接口,避免了接口调用的开发,降低了开发成本,进而解决了相关技术中仅仅简化了数据获取开发,仍然需要对接口的调用进行开发,导致开发成本较高的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的接口的调用方法的流程图;
图2是根据本发明实施例的一种可选的零开发配置式http接口调用的实现系统结构的示意图;
图3是根据本发明实施例的一种可选的接口的调用装置的示意图;
图4是根据本发明实施例的一种用于接口的调用方法的电子设备(或移动设备)的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于本领域技术人员理解本发明,下面对本发明各实施例中涉及的部分术语或名词做出解释:
feign,是一种实现负载均衡的开源框架。
需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
本发明提出了一种基于feign框架的零开发配置式http接口调用的实现方法,涉及http接口配置模块、接口定义及规则配置库、动态http接口引擎以及开源feign框架等,能够加载接口清单和配置规则,并根据接口定义,在内存中生成符合feign框架规则的接口,即仅需要运维人员根据接口协议在页面上完成接口配置即可,而无须开发人员介入,也不需要经历一整套的开发、测试和部署上线的流程,因此能够减少开发成本。
下面结合各个实施例来详细说明本发明。
实施例一
根据本发明实施例,提供了一种接口的调用方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种可选的接口的调用方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件,其中,配置规则是预先配置的预设接口文件的文件结构模板,接口清单中记录多个接口的接口标识,预设接口文件是符合预设框架规则的文件。
步骤S102,在预设编译环境编译预设接口文件,得到与每个接口对应的接口类。
步骤S103,接收接口调用请求,其中,接口调用请求至少包括:目标接口标识,目标接口标识对应有目标接口类。
步骤S104,响应接口调用请求,基于目标接口类调用目标接口标识指示的目标接口,采用目标接口以获取目标数据。
通过上述步骤,可以加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件,在预设编译环境编译预设接口文件,得到与每个接口对应的接口类,接收接口调用请求,响应接口调用请求,基于目标接口类调用目标接口标识指示的目标接口,采用目标接口以获取目标数据。在本发明实施例中,可以先加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件,然后编译预设接口文件,以得到与每个接口对应的接口类,再根据与接收到的接口调用请求中携带的目标接口标识对应的目标接口类调用相应的目标接口,之后采用目标接口以获取目标数据,能够通过预先配置接口直接调用相应的接口,避免了接口调用的开发,降低了开发成本,进而解决了相关技术中仅仅简化了数据获取开发,仍然需要对接口的调用进行开发,导致开发成本较高的技术问题。
下面结合上述各步骤对本发明实施例进行详细说明。
图2是根据本发明实施例的一种可选的零开发配置式http接口调用的实现系统结构的示意图,如图2所示,包括:http接口配置模块、接口定义及规则配置库、动态HTTP接口引擎、feign框架。实现流程为:第1步,配置用户通过http接口配置模块进行配置,并将配置数据存储至接口定义及规则配置库;第2步,通过动态HTTP接口引擎中的A动态接口生成器生成接口类,通过B运行期类加载器将生成的接口类动态加载到运行期的JVM(JavaVirtual Machine,即一种虚拟环境)中,得到http接口类1,http接口类2,……。通过C动态接口统一调用类接收接口用户的请求,并通过D动态feign构建器根据请求中的接口标识,使用JVM中对应的http接口类构建feign请求;第3步,feign框架接收来自动态HTTP接口引擎的feign请求,完成http请求构建,并通过网关发送至接口提供方。
下面结合图2对下述各步骤进行详细说明。
可选地,在加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件之前,还包括:控制预设配置界面接收外部设备输入的配置信息,其中,配置信息包括:接口标识、接口请求类型、请求地址、请求参数,请求参数包括:参数类型、参数传递位置、请求头参数;基于配置信息,生成配置规则;基于每个接口的接口标识,构建接口清单,其中,接口清单中的每个接口标识关联有接口配置数据;将配置规则以及接口清单存储至预设配置库。
在本发明实施例中,http接口配置模块提供了对http接口规则进行配置的配置页面(即预设配置界面),可以使得预设配置界面接收外部设备输入的配置信息,该配置信息包括:接口标识(即接口的唯一标识,可以是接口名称)、接口请求类型(如GET/POST/PUT/DELETE等)、请求地址、请求参数等,该请求参数包括:参数类型、参数传递位置(如body/param/path等)、请求头参数等。然后,根据配置信息生成配置规则(即可以构建配置信息中每个参数信息的格式,以建立文件的统一数据结构,生成配置规则),并可以根据每个接口的接口标识,构建接口清单,该接口清单中的每个接口标识关联有接口配置数据。之后,可以将配置规则以及接口清单(即配置好的配置数据)存储至预设配置库(即接口定义及规则配置库)。
步骤S101,加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件,其中,配置规则是预先配置的预设接口文件的文件结构模板,接口清单中记录多个接口的接口标识,预设接口文件是符合预设框架规则的文件。
可选地,加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件的步骤,包括:加载接口清单,得到每个接口关联的接口配置数据;加载配置规则,得到配置模板;基于配置模板以及预设框架规则,将接口配置数据转换为预设接口文件。
在本发明实施例中,可以通过动态HTTP接口引擎中的动态接口生成器,从接口定义及规则配置库中加载接口清单和配置规则,并根据配置规则,在内存中生成符合feign框架规则(即预设框架规则)的接口文件(即预设接口文件),具体为:可以先加载接口清单,得到每个接口关联的接口配置数据,然后加载配置规则,得到配置模板(即预先配置的文件的数据结构模板),再根据配置模板以及预设框架规则(即feign框架规则),将接口配置数据转换为预设接口文件。
本实施例中,配置规则是预先配置的预设接口文件的文件结构模板,是为文件配置的数据结构。接口清单中记录多个接口的接口标识,用于查看多个接口。预设接口文件是符合预设框架规则的文件。
可选地,在加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件之后,还包括:将所有预设接口文件加载至预设编译环境,其中,预设编译环境为处于运行状态的编译环境。
在本发明实施例中,可以通过动态HTTP接口引擎中的运行期类加载器将生成的接口文件(即预设接口文件)动态加载到运行期的JVM(即预设编译环境)中(即将所有预设接口文件加载至预设编译环境,该预设编译环境为处于运行状态的编译环境)。
步骤S102,在预设编译环境编译预设接口文件,得到与每个接口对应的接口类。
在本发明实施例中,可以在预设编译环境(如JVM环境)编译预设接口文件,以得到与每个接口对应的接口类。
可选地,在接收接口调用请求之前,还包括:配置统一访问地址,其中,统一访问地址用于接收不同外部接口发起的接口调用请求。
在本发明实施例中,可以将动态HTTP接口引擎中的动态接口统一调用类作为接口用户的统一访问入库,提供对不同的接口的统一访问,具体为:可以配置统一访问地址,该统一访问地址用于接收不同外部接口发起的接口调用请求,接口调用请求只需在统一访问地址后加入接口标识即可调用相应的接口类。
步骤S103,接收接口调用请求,其中,接口调用请求至少包括:目标接口标识,目标接口标识对应有目标接口类。
在本发明实施例中,可以接收不同外部接口传输的接口调用请求,该接口调用请求至少包括:目标接口标识,并且目标接口标识对应有目标接口类。
可选地,在接收接口调用请求之后,还包括:基于所有接口类,确定与目标接口标识对应的目标接口类;基于目标接口类,构建预设框架请求;将预设框架请求发送至预设框架。
在本发明实施例中,可以通过动态HTTP接口引擎中的动态feign构建器,根据接口调用请求中的目标接口标识调用JVM中对应的http接口类(即基于所有接口类,确定与目标接口标识对应的目标接口类),以构建feign请求(即预设框架请求)(即基于目标接口类,构建预设框架请求)。之后,将预设框架请求发送至预设框架。
步骤S104,响应接口调用请求,基于目标接口类调用目标接口标识指示的目标接口,采用目标接口以获取目标数据。
在本发明实施例中,可以响应该接口调用请求,并基于目标接口类调用目标接口标识指示的目标接口,以采用目标接口获取目标数据。
可选地,在基于目标接口类调用目标接口标识指示的目标接口之后,还包括:控制预设框架基于预设框架请求构建接口数据获取请求;将接口数据获取请求发送至与目标接口关联的预设接口提供端,其中,预设接口提供端用于提供目标数据。
在本发明实施例中,feign框架接收来自动态HTTP接口引擎的feign请求(即预设框架请求)后,可以根据预设框架请求构建接口数据获取请求(即http请求构建),并将接口数据获取请求发送至与目标接口关联的预设接口提供端,该预设接口提供端用于提供目标数据。
本实施例中,构建的动态http接口引擎可以被应用到自定义表单的服务管道绑定功能,能够实现自定义表单的在线配置和热发布。
在本实施例中,http接口配置模块是基于微服务架构(如Spring Cloud,是一系列框架的有序集合)自开发的规则配置功能。动态http接口引擎是基于微服务架构(如SpringCloud)自开发的引擎模块,其中,动态接口生成器可以采用自开发的JAVA(一种编程语言)代码片段模板技术;运行期类加载器可以采用JDK(一种开发工具包)动态编译技术;统一调用类可以采用JAVA动态代理技术;动态feign构建器,可以采用spring open feign(是一个声明式客户端)的builder技术(一种构建技术)。
本发明实施例中,通过http协议对接和维护修改调用无代码化,可实现http接口协议调用无需代码开发者再进行协议级参数的开发。并且,http接口配置模块和接口定义及规则配置库可形成标准化复用,运维人员即可操作完成对协议参数的新增与修改,实现动态、灵活的可配置化,代码的产品化,能力的运营化。同时,配置修改后,配置可立即生效,无需进行重新进行代码版本更新上线,实现了自定义在线配置和热发布,减少协议需求变更的时间周期。
下面结合另一实施例进行详细说明。
实施例二
本实施例中提供的一种接口的调用装置包含了多个实施单元,每个实施单元对应于上述实施例一中的各个实施步骤。
图3是根据本发明实施例的一种可选的接口的调用装置的示意图,如图3所示,该调用装置可以包括:加载单元30,编译单元31,接收单元32,调用单元33,其中,
加载单元30,用于加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件,其中,配置规则是预先配置的预设接口文件的文件结构模板,接口清单中记录多个接口的接口标识,预设接口文件是符合预设框架规则的文件;
编译单元31,用于在预设编译环境编译预设接口文件,得到与每个接口对应的接口类;
接收单元32,用于接收接口调用请求,其中,接口调用请求至少包括:目标接口标识,目标接口标识对应有目标接口类;
调用单元33,用于响应接口调用请求,基于目标接口类调用目标接口标识指示的目标接口,采用目标接口以获取目标数据。
上述调用装置,可以通过加载单元30加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件,通过编译单元31在预设编译环境编译预设接口文件,得到与每个接口对应的接口类,通过接收单元32接收接口调用请求,通过调用单元33响应接口调用请求,基于目标接口类调用目标接口标识指示的目标接口,采用目标接口以获取目标数据。在本发明实施例中,可以先加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件,然后编译预设接口文件,以得到与每个接口对应的接口类,再根据与接收到的接口调用请求中携带的目标接口标识对应的目标接口类调用相应的目标接口,之后采用目标接口以获取目标数据,能够通过预先配置接口直接调用相应的接口,避免了接口调用的开发,降低了开发成本,进而解决了相关技术中仅仅简化了数据获取开发,仍然需要对接口的调用进行开发,导致开发成本较高的技术问题。
可选地,调用装置还包括:第一控制模块,用于在加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件之前,控制预设配置界面接收外部设备输入的配置信息,其中,配置信息包括:接口标识、接口请求类型、请求地址、请求参数,请求参数包括:参数类型、参数传递位置、请求头参数;第一生成模块,用于基于配置信息,生成配置规则;第一构建模块,用于基于每个接口的接口标识,构建接口清单,其中,接口清单中的每个接口标识关联有接口配置数据;第一存储模块,用于将配置规则以及接口清单存储至预设配置库。
可选地,加载单元包括:第一加载模块,用于加载接口清单,得到每个接口关联的接口配置数据;第二加载模块,用于加载配置规则,得到配置模板;第一转换模块,用于基于配置模板以及预设框架规则,将接口配置数据转换为预设接口文件。
可选地,调用装置还包括:第三加载模块,用于在加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件之后,将所有预设接口文件加载至预设编译环境,其中,预设编译环境为处于运行状态的编译环境。
可选地,调用装置还包括:第一配置模块,用于在接收接口调用请求之前,配置统一访问地址,其中,统一访问地址用于接收不同外部接口发起的接口调用请求。
可选地,调用装置还包括:第一确定模块,用于在接收接口调用请求之后,基于所有接口类,确定与目标接口标识对应的目标接口类;第二构建模块,用于基于目标接口类,构建预设框架请求;第一发送模块,用于将预设框架请求发送至预设框架。
可选地,调用装置还包括:第二控制模块,用于在基于目标接口类调用目标接口标识指示的目标接口之后,控制预设框架基于预设框架请求构建接口数据获取请求;第二发送模块,用于将接口数据获取请求发送至与目标接口关联的预设接口提供端,其中,预设接口提供端用于提供目标数据。
上述的调用装置还可以包括处理器和存储器,上述加载单元30,编译单元31,接收单元32,调用单元33等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来响应接口调用请求,基于目标接口类调用目标接口标识指示的目标接口,采用目标接口以获取目标数据。
上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件,在预设编译环境编译预设接口文件,得到与每个接口对应的接口类,接收接口调用请求,响应接口调用请求,基于目标接口类调用目标接口标识指示的目标接口,采用目标接口以获取目标数据。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述的接口的调用方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述的接口的调用方法。
图4是根据本发明实施例的一种用于接口的调用方法的电子设备(或移动设备)的硬件结构框图。如图4所示,电子设备可以包括一个或多个(图4中采用402a、402b,……,402n来示出)处理器402(处理器402可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器404。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、键盘、电源和/或相机。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种接口的调用方法,其特征在于,包括:
加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件,其中,所述配置规则是预先配置的所述预设接口文件的文件结构模板,所述接口清单中记录多个接口的接口标识,所述预设接口文件是符合预设框架规则的文件;
在预设编译环境编译所述预设接口文件,得到与所述每个接口对应的接口类;
接收接口调用请求,其中,所述接口调用请求至少包括:目标接口标识,所述目标接口标识对应有目标接口类;
响应所述接口调用请求,基于所述目标接口类调用所述目标接口标识指示的目标接口,采用所述目标接口以获取目标数据。
2.根据权利要求1所述的调用方法,其特征在于,在加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件之前,还包括:
控制预设配置界面接收外部设备输入的配置信息,其中,所述配置信息包括:接口标识、接口请求类型、请求地址、请求参数,所述请求参数包括:参数类型、参数传递位置、请求头参数;
基于所述配置信息,生成所述配置规则;
基于每个接口的所述接口标识,构建所述接口清单,其中,所述接口清单中的每个所述接口标识关联有接口配置数据;
将所述配置规则以及所述接口清单存储至所述预设配置库。
3.根据权利要求2所述的调用方法,其特征在于,加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件的步骤,包括:
加载所述接口清单,得到每个接口关联的所述接口配置数据;
加载所述配置规则,得到配置模板;
基于所述配置模板以及所述预设框架规则,将所述接口配置数据转换为所述预设接口文件。
4.根据权利要求1所述的调用方法,其特征在于,在加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件之后,还包括:
将所有所述预设接口文件加载至所述预设编译环境,其中,所述预设编译环境为处于运行状态的编译环境。
5.根据权利要求1所述的调用方法,其特征在于,在接收接口调用请求之前,还包括:
配置统一访问地址,其中,所述统一访问地址用于接收不同外部接口发起的所述接口调用请求。
6.根据权利要求1所述的调用方法,其特征在于,在接收接口调用请求之后,还包括:
基于所有所述接口类,确定与所述目标接口标识对应的所述目标接口类;
基于所述目标接口类,构建预设框架请求;
将所述预设框架请求发送至预设框架。
7.根据权利要求6所述的调用方法,其特征在于,在基于所述目标接口类调用所述目标接口标识指示的目标接口之后,还包括:
控制所述预设框架基于所述预设框架请求构建接口数据获取请求;
将所述接口数据获取请求发送至与所述目标接口关联的预设接口提供端,其中,所述预设接口提供端用于提供所述目标数据。
8.一种接口的调用装置,其特征在于,包括:
加载单元,用于加载预设配置库中的配置规则以及接口清单,为每个接口生成预设接口文件,其中,所述配置规则是预先配置的所述预设接口文件的文件结构模板,所述接口清单中记录多个接口的接口标识,所述预设接口文件是符合预设框架规则的文件;
编译单元,用于在预设编译环境编译所述预设接口文件,得到与所述每个接口对应的接口类;
接收单元,用于接收接口调用请求,其中,所述接口调用请求至少包括:目标接口标识,所述目标接口标识对应有目标接口类;
调用单元,用于响应所述接口调用请求,基于所述目标接口类调用所述目标接口标识指示的目标接口,采用所述目标接口以获取目标数据。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至7中任意一项所述的接口的调用方法。
10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任意一项所述的接口的调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211656871.XA CN116166313A (zh) | 2022-12-22 | 2022-12-22 | 接口的调用方法及其装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211656871.XA CN116166313A (zh) | 2022-12-22 | 2022-12-22 | 接口的调用方法及其装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116166313A true CN116166313A (zh) | 2023-05-26 |
Family
ID=86410326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211656871.XA Pending CN116166313A (zh) | 2022-12-22 | 2022-12-22 | 接口的调用方法及其装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116166313A (zh) |
-
2022
- 2022-12-22 CN CN202211656871.XA patent/CN116166313A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391114B (zh) | 页面可视化渲染方法及装置 | |
CN112534398B (zh) | 用于连接器开发和集成通道部署的系统和方法 | |
US9342492B1 (en) | Methods and systems for the provisioning and execution of a mobile software application | |
CN110365751B (zh) | 网关系统的业务处理方法、装置及设备 | |
CN110908738B (zh) | 用于运行小程序的方法和装置 | |
CN112329945A (zh) | 一种模型部署及推理的方法和装置 | |
CN111399840B (zh) | 一种模块开发方法及装置 | |
CN111897541B (zh) | 一种云环境下自动化部署资源的软件交互平台及方法 | |
CN112769706B (zh) | 组件化路由方法及系统 | |
Gómez et al. | A model-based approach for developing event-driven architectures with asyncapi | |
CN115686634A (zh) | 一种测发控流程指令的处理方法、装置、终端及存储介质 | |
KR20210060203A (ko) | 마이크로서비스 구조 재구성 방법 및 장치 | |
US20220334853A1 (en) | System and method for accelerating modernization of user interfaces in a computing environment | |
da Silva et al. | A model-driven approach for promoting cloud PaaS portability. | |
CN116166313A (zh) | 接口的调用方法及其装置、电子设备及存储介质 | |
CN113778564B (zh) | 一种高效执行evm智能合约的方法、设备及储存介质 | |
CN115390846A (zh) | 编译构建方法、装置、电子设备和存储介质 | |
CN113157274A (zh) | 基于微前端的软件开发方法、装置、电子设备及存储介质 | |
Skúlason | Architectural operations in cloud computing | |
Srinivasmurthy et al. | Web2exchange: A model-based service transformation and integration environment | |
CN116032809B (zh) | 使用Wasm的网络协议分析方法及系统 | |
CN116107665B (zh) | 工程项目配置方法、装置、终端和存储介质 | |
CN115686676B (zh) | 一种对象的动态调用方法、装置及电子设备 | |
CN113032004B (zh) | 在开发环境中管理开发作业的方法、设备和程序产品 | |
Gottardi et al. | Run-time Adaptable Service Oriented Architecture in the Context of Repository Systems |
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 |